×î½üÊÖÍ·¹¤×÷²»ÊÇÌ«ÖØ,¿ÉÒÔ³éÉí³öÀ´Ñ§Ò»Ð©ÒÔǰÏëѧÓÖûÓÐʱ¼äѧµÄ¼¼Êõ.
ºÇºÇ,Linux±ãÊÇÊ×µ±Æä³åÁË,×¼±¸ÓÃÁ½¸öÔµÄË«ÐÝÈÕÀ´ÏµÍ³µÄѧºÃËü.
ѧϰlinux±ØÐèѧ»á°²×°ºÍʹÓÃ,¶Á´óѧµÄʱºòÒ²×°¹ýÒ»´ÎÀ´Íæ,
ÐéÄâ»ú¾µÏñ»¹±»ÎÒ¿ËÒâ±£ÁôÁËÆðÀ´.ÏÖÔÚÒªÍæµÄ»°¾ÍʡʶàÁË.
²»¹ýÓÐʱ¼äÎÒ»¹ÊÇÏëдһ±à°²×°linuxµÄѧϰ±Ê¼Ç,±Ï¾¹ÄÇʱÀëÏÖÔÚ¶¼ËÄÎåÄêÁË.
Ìý˵ÏÖÔÚUbuntuÒѾ°ÑlinuxÍÆÏòÁËÒ»¸ö¿ÉÒÔÌôÕ½windowsµÄ¸ß¶ÈÁË,ÕæÏëÂíÉϾÍ×°À´Íæ,¿ÉϧÎÒ²¿ÆßÄêÀúÊ·µÄ»úÆ÷²»ÕùÆø°¡,ÕæÊǶªÈË.ÎÒʲôʱºòÂòеçÄÔ
³¶Ô¶ÁË,½ñÌì¾ÍÏÈÀ´Ñ§Ï°LinuxµÄ²Ù×÷,ѧVIMÆäʵ¾ÍÏñÊÇÔÚwindowsÏÂѧÊó±êÒ»Ñù,ÊÇÒ»¸ö±ØÐèµÄ¼¼ÄÜ.
²»¹ýѧÊó±êÈÝÒ×,ѧviMÈ´²»ÈÝÒ×,ûÓÐÒ»¶Î¸ßÇ¿¶ÈµÄ²Ù×÷ʱ¼äÀ´ìÑÁ·ÊǺÜÄѼÇסµÄ.
·²ÊÂÖ»ÒªÄãÈ¥×öÁË,ÄãÖÁÉٳɹ¦ÁËÒ»°ë.
À´,ÎÒÃÇÏÖÔھͿªÊ¼


litkt ÓÚ 2008-03-06 22:23:37·¢±í:
×î½Ó½üviµÄÊÇnvi¡£
nviºÜºÃ£¬Ð¡ÇÉ£¬¶Ô8λ×ÖĸÎÄ×Ö£¨ISO8859-n£©ÌرðºÏÊÊ¡£ÔÚISO8859»·¾³ÖÐÅäºÏCCEÒ²ÄÜдGB2312ºº×Ö£¨GB2312»·¾³Öз´¶ø²»ÐУ©£¬²»¹ýÒªÌØ±ðСÐÄ£¬·ñÔòºº×ÖÈ«ÂÒ¡£
vimÒ²ºÜºÃ£¬Êʺϸ÷ÖÖÎÄ×Ö£¬¹¦ÄÜÇ¿´ó¡£¾ÍÊǸöÍ·ÓÐЩ̫´ó¡£vim-tinyÒ²ºÜºÃ£¬vimµÄºÜ¶àÀ©Õ¹¹¦ÄÜûÓÐÁË£¬Ò²²»ÈçnviСÇÉ£¬µ«nviд²»ÁË×ÖËüÄÜд¡£
ordFROg ÓÚ 2008-03-06 09:37:46·¢±í:
¸Ðл¹«Ë¾Ò»Î»Ç°±²Ç®Éƺ£µÄÄÚ²¿¿Î³ÌÎÄÕÂ,ÕâÊÇ´ÓËûÄÇÀïתÀ´µÄ.
, д C ´úÂë·Ç³£ÓÐÓÃ.
:set filetype=cpp
gt "ÔÚ¶à TAb ±à¼Ê±·½±ãÌø×ª
gT
gt
/*
* vim »ù±¾Ê¹ÓÃ
*
* ×÷Õß: Ç®ÉÆº£
* ´´½¨Ê±¼ä: 2006.03.21
* ×îºóÐÞ¸Äʱ¼ä: 2007.08.30
*/
1. ʲôÊÇ vim
2. vim µÄ»ù±¾²Ù×÷
2.1 »ù±¾Ö¸Áî
2.2 ¶àÎļþ±à¼
2.3 Ê®Áù½øÖƱà¼
2.4 ²éÕÒ
2.5 Ìæ»»
3. ±à¼´úÂëµÄÉèÖúͲÙ×÷
3.1 ~/.vimrc ÅäÖÃ
3.2 ʹÓà tag
4. Óï·¨¸ßÁÁ
5. Îĵµ
6. ²Î¿¼Îĵµ
VIM »ù±¾Ê¹ÓÃ
1. ʲôÊÇ vim
vim ÊÇÒ»¿î±à¼Æ÷, ÊÇ Vi IMproved µÄËõд. Ò²¼´ vi µÄÀ©Õ¹°æ±¾.
(vi µÄÀ©Õ¹°æÓкܶà, vim ÊÇÆäÖÐÒ»ÖÖ, Ó¦¸ÃÊÇ×î½Ó½ü vi µÄÒ»¸öÀ©Õ¹°æ)
Ö÷Òª×÷ÕßÊÇ Bram Moolenaar, Ëû±àдÁË Vim µÄºËÐŦÄÜ.
¹Ù·½Ö÷Ò³: www.vim.org , ʹÓÃÓë GPL ¼æÈݵÄÐÒé·¢²¼, ¿ÉÒÔ»ñµÃ(ÈçÏÂÔØ)Ô´´úÂë.
(ʲôÊÇ GPL ? Çë¿´ http://www.gnu.org/copyleft/gpl.html )
ÄÇ vi ÓÖÊÇÊ²Ã´ÄØ? vi Ò²ÊÇÒ»¿î±à¼Æ÷, ÆðÔ´ÓÚ 1977 Äê, ×÷ÕßÊÇ Bill Joy.
vi ¼´ visual µÄÒâ˼, ÒâÖ¸¿ÉÊÓ»¯±à¼Æ÷, ·Ç¿ÉÊÓ»¯±à¼Æ÷ÓÐÈç ed sed µÈ.
vim ÊÇ±à¼Æ÷, µ«¸üÏñÊÇÒ»¸ö¹¤¾ß, ʹÓÃËü¿ÉÒÔ¸ßЧµÄÍê³ÉºÜ¶àÊÂÇé,
¼ÈÈ»ÊÇÒ»¸ö¹¤¾ß, ÎÒÃǾÍÓ¦¸ÃÏÈѧϰÔÙʹÓÃ, ¸ßЧÊÇÔÚÓÐÒ»¶¨µÄ»ù´¡Ö®ÉϵÄ.
vim ¼Ì³ÐÁË Unix ºÍ vi µÄÕÜѧ: ¼òµ¥, ¸ßЧ.
1.1 ʹÓà vim µÄÈý´óÀíÓÉ
a) vim ÊÇÓà c ÓïÑÔдµÄ, ¿ÉÒÔÒÆÖ²µ½¼¸ºõÈκβÙ×÷ϵͳ
b) vim ÊÇ×î½Ó½üÓÚ vi µÄÒ»¸öÀ©Õ¹°æ±¾
c) Óï·¨¸ßÁÁ, ºÜÊʺÏÓÚ±àд¸÷ÖÖ´úÂë
2. vim µÄ»ù±¾²Ù×÷
2.1 »ù±¾Ö¸Áî
ÔÚ vim ÖÐ, ¹â±êµÄÒÆ¶¯ÊÇ»ù´¡, Ö»ÓÐÊìÁ·¹â±êµÄÒÆ¶¯²ÅÄÜÌå»á vim µÄ¸ßЧ,
²¢ÇÒ, ºÜ¶à²Ù×÷¶¼ÊǺ͹â±êÒÆ¶¯ÓйصÄ. ÁíÍâ, ʹÓà vim ʱ, Ó¦¸ÃֻʹÓÃ
ÏÂÃæÕâ¸öÇøÓòÖеİ´¼ü:
~ ... <- (¼´ BackSpace ¼ü)
... ... ...
Ctrl ... Ctrl
½¨Òé: ÿÌìʹÓà vim Ò»¸öСʱÊìϤָÁî, Á¬ÐøÆßÌì¼´¿É.
** ÏÂÃæ³ýÁËÌØ±ð˵Ã÷Íâ, ʹÓà ^X ±íʾ Ctrl-X , X ΪÈÎÒâ×Ö·û.
vim ÓÐÁùÖÖģʽ, ΪÁËŪ»ì, Ïȼٶ¨ÓÐÈýÖÖ:
a. Normal mode(common mode, c-mode) ³ÆÎªÆÕͨģʽ
½øÈë vim ºóµÄ¾ÍÊÇ´¦ÓÚ c-mode , Ö»ÄÜÏÂϰ´¼üÖ¸Áî, ²»ÄÜÊäÈëÎÄ×Ö.
b. Insert mode(i-mode) ³ÆÎª±à¼Ä£Ê½
°´ i ¾Í»á½øÈë i-mode, ´Ëʱ²Å¿ÉÒÔÊäÈë, °´ ^[ ÓÖ»á»Øµ½ c-mode
c. Ed mode(common-line mode, e-mode) ÃüÁîÐÐģʽ
°´Ã°ºÅ : ¾Í»á½øÈë e-mode
e-mode (ÃüÁîÐÐģʽ): (¼òµ¥ÃüÁî, ¸´ÔÓµÄÔÚºóÃæ)
:q Í˳öÎļþ :q! Ç¿ÖÆÍ˳ö :w дÈëÎļþ :w! Ç¿ÖÆÐ´Èë :wq дÈë²¢Í˳ö
:w foo дÈëÎļþ foo :r foo ¶ÁÈëÎļþ foo
c-mode (ÆÕͨģʽ):
½øÈë i-mode:
i ÔÚ¹â±êǰ±à¼ I ÔÚÐÐÊױ༠o ÔÚ¹â±êËùÔÚÐÐÏ¿ªÆôÐÂÐÐ
a ÔÚ¹â±êºó±à¼ A ÔÚÐÐβ±à¼ O ÔÚ¹â±êËùÔÚÐÐÉÏ¿ªÆôÐÂÐÐ
s ɾ³ýµ±Ç°¹â±êËùÔÚ×Ö·ûºó±à¼ S ɾ³ýµ±Ç°ÐÐ(²»°üÀ¨ÐÐǰ¿Õ°×)ºó±à¼
s ºÍ S ²¢²»³£ÓÃ.
¹â±êÒÆ¶¯ºÍɾ³ý: k H ÆÁÄ»×óÉϽǷǿհ״¦
h ×ó j Ï k ÉÏ l ÓÒ h l M ÆÁÄ»Öмä·Ç¿Õ°×´¦
j L ÆÁÄ»×óϽǷǿհ״¦
w ÓÒÒÆÏÂÒ»¸ö×ֵĿªÊ¼´¦, e ÒÆµ½ËùÔÚ×ÖµÄÄ©¶Ë b ÒÆµ½ÉÏÒ»¸ö×Ö¿ªÊ¼´¦
W E B ÓëÉÏÃæÒ»Ñù, ²»Í¬µÄÊÇÒÔ¿Õ°×Çø·Ö×Ö(word)
gg ÎļþÊ× G Îļþβ x ɾ³ý¹â±êËùÔÚ×Ö·û X ɾ³ý¹â±êǰµÄ×Ö·û
0 ÐÐǰ ^ ÐÐǰ·Ç¿Õ°×´¦ $ ÐÐβ
d ɾ³ýÖ¸Áî,ÓëÆäËüÖ¸Áî×éºÏ, Èç dw ɾ³ýÒ»¸ö×Ö d0 ɾÖÁÐÐÊ×
dd ɾ³ýµ±Ç°ÐÐ D ɾÖÁÐÐβ
** ɾ³ýµÄÄÚÈÝ»á·Åµ½»º³åÇø, ʹÓúóÃæµÄ p ¿ÉÒÔÕ³Ìù
ÒÔÉÏÖ¸Áî¿ÉÒÔºÍÊý×Ö×éºÏ, Èç:
50l ±íʾÏòºóÒÆ 50 ¸öµ¥Ôª, d5w ɾ³ýºóÃæ 5 ¸ö×Ö
dL ɾ³ýµ½ÆÁÄ»µ×¶Ë 100gg ÌøÖÁÎļþµÄµÚ 100 ÐÐ, »òÕß 100G
ÁíÍâһЩ»ù±¾²Ù×÷:
K ²éÕÒµ±Ç°µÄ×ÖµÄ man Ò³, Ï൱ÓÚÖ´ÐÐ :! man
. ÖØ¸´ÉÏÒ»¸ö¸Ä±ä, ÕâÀïµÄ¸Ä±äÊDzåÈë, ɾ³ý»òÌæ»»²Ù.×÷
u ³·Ïú
^R ·´³·Ïú
% µ±¹â±êλÓÚСÖдóÀ¨ºÅʱ, ÒÆ¶¯µ½Ð¡ÖдóÀ¨ºÅÏà¶ÔÓ¦µÄ×óÓÒÀ¨ºÅ,
J °ÑÒ»ÐÐÁ¬½Óµ½µ±Ç°ÐÐ
= ÖØÐÂÅŰæÖ¸Áî, Èç =% , =L µÈµÈ
>> ÏòÓÒËõ½ø, 3>> ^F Ïòºó·Ò³
<< Ïò×óËõ½ø ^B Ïòǰ·Ò³
zz ʹµ±Ç°Î»ÖóÉΪÆÁÄ»µÄÖмä [I ÏÔʾ°üº¬µ±Ç°×ÖµÄËùÓÐÐÐ
±êÇ© mark -- ·½±ãÌøÀ´ÌøÈ¥
m ±êǩָÁî, mx °Ñµ±Ç°Î»ÖñêΪ x , x ¿ÉΪ a-zA-Z
'x ÌøÖÁ±êǩΪ x ËùÔÚÐеÄÐÐÊ׷ǿհ״¦
`x ÌøÖÁ±êǩΪ x ËùÔÚÐбêǩʱµÄλÖÃ
Ñ¡ÖÐ:
v °´ÐÐÑ¡ÖÐ, ÒÔµ¥ÔªÎªµ¥Î»
V °´ÐÐÑ¡ÖÐ, ÒÔÐÐΪµ¥Î»
ctrl-v °´ÁÐÑ¡ÖÐ
v% vL v$
Ñ¡Öкó¿ÉÒÔ½øÐÐһЩ²Ù×÷:
u ת³ÉСд U ת³É´óд y ¿½±´ > ÏòÓÒËõ½ø < Ïò×óËõ½ø
yank & paste:
y ¿½±´Ö¸Áî p Õ³ÌùÖ¸Áî, Õ³ÌùÓÉ x, X, d, D, y ÒýÆðµÄ»º³åÇø
yy ¿½±´µ±Ç°ÐÐ y4j ¿½±´µ±Ç°Ðкͺó 4 ÐÐ
y`a ¿½±´ÖÁ±êÇ© a , ÒÔÐÐΪµ¥Î»
y'a ¿½±´ÖÁ±êÇ© a , ÒÔ×Ö·ûΪµ¥Î»
2p Õ³Ìù 2 ´Î, xp ¶Ô»»µ±Ç°×Ö·ûºÍÏÂÒ»×Ö·û, ddp ¶Ô»»µ±Ç°ÐкÍÏÂÒ»ÐÐ
Ìæ»»(r):
rx °Ñµ±Ç°×Ö·ûÌæ»»Îª x, x ΪÈÎÒâ×Ö·û
R Ìæ»» n ¸ö×Ö·û, Ö±µ½°´ Esc »ò ^[ Ϊֹ
Àý×Ó: 05l^V3jra °Ñµ±Ç°ÐÐÏòºó¿ªÊ¼µÄ 4 ÐÐµÄµÚ 6 Áл»³É a
²éÕÒ:
/ Ïòºó²éÕÒ ? Ïòǰ²éÕÒ
* Ïòºó²éÕÒ¹â±êËùÔÚ×Ö # Ïòǰ²éÕÒ¹â±êËùÔÚ×Ö
n ÏÂÒ»¸ö N ÉÏÒ»¸ö
²éÕÒʱÔÚ e-mode ϵÄÏà¹ØÉèÖÃ:
:set hls ÏÔʾ²éÕÒ¸ßÁÁ :set nohls È¡Ïû²éÕÒ¸ßÁÁ
ÎļþºÍµ±Ç°ÐÅÏ¢:
^G g^G
¼Ç¼ºÍÖØ¸´²Ù×÷: (ÕâÀ๦Äܼ«ÉÙÓõ½, Óõ½Ê±ÔÙÀ´²éÕÒ)
q ¼Ç¼ָÁî @ ÖØ¸´²Ù×÷Ö¸Áî
qx...q x Ϊ a-zA-Z , ... ±íʾһϵÁеIJÙ×÷, ×îºóµÄ q ±íʾ½áÊøÕâ¸ö¼Ç¼.
@x ÖØ¸´±êǩΪ x µÄ¼Ç¼, n@x ±íÊ¾ÖØ¸´ n ´Î.
Á½ÀàÖ¸Áî:
1. ÓëÇøÓòÎÞ¹Ø, Ïñ h, j, k, l ^F ^B ÕâЩ»ù±¾µÄ¹â±êÒÆ¶¯Ö¸ÁîºÍ m µÈµÈ
2. ÓëÇøÓòÓйØ:
a) d y =
ÕâÒ»ÀàµÄ²Ù×÷Ó뵱ǰ¹â±êºÍ×îºóµÄ¹â±êÓйØ, ËùÒÔ³Æ×öÓëÇøÓòÓйØ,
Èç dG ½«É¾µ½Îļþβ, µ±È»ÊÇ´Óµ±Ç°Î»ÖÿªÊ¼µÄÁË,
ÓÖÈç d% =100j yL , ²¢ÇÒÕ⼸¸öÖ¸ÁîÔÚÑ¡ÖпéÖ®ºóÒ²ÄÜʹÓÃ
b) > < u U Ö¸ÁîÔÚÑ¡ÖпéÖ®ºóʹÓÃ
ÕÛµþ:
zf ºó¼ÓÉÏÒÆ¶¯Ö¸Áî, ¾ÍÄÜÕÛµþÕâ¸öÇøÓò, Èç zf% zfG µÈµÈ,
ͨ³£ÔÚ¿´´úÂëʱʹÓÃ. ¶Ô×ÅÕÛµþµÄÐа´ 0 Õ¹¿ª.
¿ìËÙÒÆ¶¯:
a. ^F ^B w W % 30j µÈ
b. / ?
c. fo ÒÆµ½ÐÐÖеÚÒ»¸ö×Ö·û o µÄλÖÃ
Áбà¼:
a. ^V3jISTRING^[ ÔÚÑ¡ÖеÄÈýÁвåÈë STRING
b. ^V3j$ASTRING^[ ÔÚÑ¡ÖеÄÈýÁеÄÐÐβÌí¼Ó STRING
c. Çë¿´ :h ÖÐµÄ visual.txt
´óСд:
~ ´óСд»¥»» g~~ °Ñ¸ÃÐеĴóСд»¥»»
guu °Ñµ±Ç°Ðл»³ÉСд gUU °Ñµ±Ç°Ðл»³É´óд gUw ??
¸ü¶àµÄɾ³ýºÍ±ä»»¼û :h ÖÐµÄ change.txt
i-mode (±à¼Ä£Ê½):
^P ×Ô¶¯²¹È«,»ò ^N ^[ ½øÈë c-mode ģʽ
2.2 ¶àÎļþ±à¼
a. ÃüÁîÐÐ
$ vim file1 file2
:n ÏÂÒ»¸öÎļþ, :N ÉÏÒ»¸öÎļþ
:first µÚÒ»¸öÎļþ :last ×îºóÒ»¸öÎļþ
b. e-mode
:sp foo ´ò¿ªÎļþ foo :vsp foo :res +10 Ôö¼Ó´°¿Ú¸ß¶È
^WW Çл»Îļþ ^Wj ^Wk
±à¼°üÀ¨ËùÓÐ word µÄÎļþ:
$ vim `grep -l word */*.c`
ÔÚ vim 7.0 ºóµÄ°æ±¾, »¹¿ÉÒÔʹÓöà Tab µÄģʽ±à¼, ÀýÈç:
:tabedit file2.cpp
»òÕßÔÚÃüÁîÐмÓÉÏ -p ʹÓÃ:
$ vim -p *.cpp
È«²¿Í˳ö:
:qa
2.3 16 ½øÖƱà¼
vim ±¾Éí²»Ö§³Ö 16 ½øÖƱà¼, Ò²½¨Ò鲻ҪʹÓà vim ½øÐÐÊ®Áù½øÖƱà¼,
µ«Å¼¶ûÏë¼òµ¥±à¼Ê±, ¿ÉÒÔͨ¹ýÍⲿÃüÁî xxd À´±à¼:
:% !xxd ±à¼ :% !xxd -r »Ö¸´
2.4 ²éÕÒ
ĬÈÏÇé¿öϲéÕÒÊÇ´óСдÃô¸ÐµÄ, ¿ÉÒÔ :set ignorecase ʹ֮ºöÂÔ´óСд,
Ö´ÐÐ :set noignorecase ÓÖ±ä³É´óСдÃô¸ÐÁË.
2.5 Ìæ»»
:%s/a/b/g °ÑÎļþµ±ÖеÄËùÓÐµÄ a »»³É b , % ±íʾÕû¸öÎļþÄÚÈÝ, g ±íʾȫ²¿Ìæ»»
s/a/b/g ¿ÉÒÔд³É s|a|b|g µÈµÈ
:%s/^/ /g ÿһÐÐÇ°Ãæ¼ÓÉÏÁ½¸ö¿Õ¸ñ, »¹¼ÇµÃ ^ Âï?
:n,m s/$/ ,/g ÔÚµÚ n ÐÐºÍµÚ m ÐеÄÿһÐеÄÐÐβ¼ÓÉÏ" ,"
:% s/^M//g µ±ÖÐµÄ ^M Ϊ ^VM , ¼´»Ø³µ·û, Òâ¼´°Ñ»Ø³µ·ûÌæ»»Îª¿Õ
:g /^$/d ɾ³ýµôËùÓпÕÐÐ:
2.6 µ÷ÓÃÍⲿÃüÁî
:! cmd Ö´ÐÐÃüÁî cmd :sh ÔÝʱÍ˳ö vim, Ö´ÐÐ $SHELL
ÀýÈç, µ÷ÓÃ sort ÅÅÐò:
:%!sort
3. ±à¼´úÂëµÄÉèÖúͲÙ×÷
3.1 ~/.vimrc ÅäÖÃ
vim ÔÚÆô¶¯Ê±»áÏȶÁÈ¡Îļþ ~/.vimrc , ÒòΪ¿ÉÒÔ°ÑһЩÉèÖÃдµ½¸ÃÎļþÖÐ:
ÈçÎÒµÄ ~/.vimrc ÎļþÄÚÈÝΪ:
"set term=vt100
set ts=4
set sw=4
set fileencoding=cp936
set fileencodings=cp936
set encoding=cp936
set autoindent
set showcmd
set nocompatible
set smartindent
set showmatch
set t_Co=8
set t_Sf=^[[1;3%p1%dm
set t_Sb=^[[1;4%p1%dm
map
set hls
set incsearch
set path=.,/usr/include,include,inc,../include,../inc
set path+=/usr/local/SRBC2.0/include
set tags+=tags;
"set wrap
syntax on
highlight Comment ctermfg=cyan
highlight Macro ctermfg=gray
highlight Include ctermfg=magenta
if has("autocmd")
filetype plugin indent on
augroup vimrcEx
au!
autocmd FileType text setlocal textwidth=78
autocmd BufReadPost *
\ if line("'\"") > 0 && line("'\"") <= line("$") |
\ exe "normal g`\"" |
\ endif
augroup END
endif
map
map
map
** ×¢ÒâÉÏÃæµÄ ^[ ÊÇÕâÑùÊäÈëµÄ: ^V[
×¢ÊÍʹÓÃË«ÒýºÅ.
3.2 ʹÓà tag
tag ÊÇʲô? ÄÇÊÇÒ»¸öË÷ÒýÎļþ, Äܹ»ÔÚ vim »ò¶àÖÖ±à¼Æ÷ÖÐʹÓÃ.
ʹÓà tag ·ÖÁ½²½, Ò»ÊÇÖÆ×÷ tag Îļþ, ¶þÊÇÔÚ±à¼Æ÷ÖÐʹÓÃ.
3.2.1 ÖÆ×÷ tag
3.2.1.1 Éú³É tags Îļþ
ÖÆ×÷ tag ÊǸö¼òµ¥µÄ¹ý³Ì, ÐèҪʹÓÃÍⲿÃüÁî ctags Íê³É, ÐèҪעÒâµÄÊÇ,
ÕâÀïµÄ ctags ÊÇ GNU ctags, Èç¹û·¢ÏÖµ±Ç°ÏµÍ³µÄ ctags ʹÓò»ÁË, ÇëÕÒ
ϵͳ¹ÜÀíÔ±»òÕß±¾ÎÄ×÷Õß°ïæ½â¾ö.
ÔÚ vim ÖÐ, Ö»ÐèÒªÔÚ×îÉϲãµÄĿ¼Éú³É tags Îļþ¼´¿É,
ÕâʱÔÚ .vimrc ÖмÓÈë: set tags+=tags; ±íʾÈç¹ûµ±Ç°Ä¿Â¼ÕÒ²»µ½Îļþ tags,
ÄÇôÍùÉÏÒ»²ãĿ¼²éÕÒ, Ö±µ½ÕÒµ½Îª´Ë.
µ±È»ÁË, ¿ÉÒÔÔÚÈÎÒâÒ»¸öĿ¼ÏÂÉú³É tags Îļþ.
Éú³É tags Îļþ×î¼òµ¥µÄ·½·¨ÊÇÔÚ ctags ÖÐʹÓà -R ²ÎÊý, ±íʾ°üÀ¨ËùÓÐ×ÓĿ¼
ÖеÄÎļþ, Èç:
ctags -R .
»òÕßÖ¸¶¨Îļþ: ctags *.cpp *.h
ÓÐʱºòÔ´´úÂëÖаüÀ¨ÁËÈç esqlc »ò proc µÄ´úÂë, Õâʱ¿É¼ÓÉÏ --language-force
²ÎÊý, Èà ctags Ç¿ÖÆÈϳÉijÖÖÓïÑÔ, ÈçÈÏ³É c++ ÓïÑÔ:
ctags -R --language-force=C++ .
3.2.1.2 svn ÎÊÌâ
ʹÓà svn checkout ³öÀ´µÄ´úÂë, »áÓÐÒ»·ÝÏàͬµÄÔÚĿ¼ .svn ÏÂ, ÕâʱÈç¹ûÓà -R
²ÎÊýÖÆ×÷ tags Îļþ, »á°üº¬¶à·ÝÒ»ÑùµÄ±ê¼Ç, ¿ÉÓà --exclude °ÑËüÅųýµô:
ctags -R --language-force=C++ --exclude=.svn .
3.2.2 ʹÓà tag
ÔÚ vim ÖÐ, ¿É°´ÏÂÃæµÄÃüÁîʹÓà tag :
^] ÌøÖÁ¸Ã tag ´¦, Èç¹û´æÔÚ¶à¸öÒ»ÑùµÄ tag, ÌøÖÁµÚÒ»¸ö, ¿ÉÓà g] ÏÔʾȫ²¿.
^T ·µ»Ø
g] ÏÔʾ¸Ã tag µÄËùÓÐÐÅÏ¢, Õâʱ¿É°´Êý×ּӻسµÑ¡Ôñ.
Èç¹ûÕÒ²»µ½ tags Îļþ, ¿ÉÒÔÖ±½ÓʹÓà set tag=/path/to/tags Ö¸¶¨.
4. Óï·¨¸ßÁÁ
ʹÓà :syntax on ¾ÍÄܹ»¼¤»îÓï·¨¸ßÁÁÏÔʾÁË, Èç¹û»¹Ã»ÓÐÏÔʾÑÕÉ«,
¿ÉÄÜÐèÒª :set filetype=cpp ±íʾʹÓà cpp.vim ×÷ΪÓï·¨¸ßÁÁÏÔʾ.
ʹÓò»Í¬ÑÕÉ«·½°¸:
:colorscheme default
Èç¹ûûÓÐÉèÖû·¾³±äÁ¿ VIMRUNTIME ¿ÉÄÜÒ²»áûÓÐÏÔʾÓï·¨¸ßÁÁ
[qsh@thai src]$ ls /usr/local/share/vim/vim64/colors/
README.txt default.vim elflord.vim morning.vim peachpuff.vim
blue.vim delek.vim evening.vim murphy.vim ron.vim
darkblue.vim desert.vim koehler.vim pablo.vim shine.vim
[qsh@thai src]$ echo $VIMRUNTIME
/usr/local/share/vim/vim64
»¹¿ÉÒÔʹÓÃ×Ô¼ºµÄÅäÉ«·½°¸:
$ mkdir ~/.vim/colors
$ cp $VIMRUNTIME/colors/morning.vim ~/.vim/colors/mine.vim
È»ºóÕâÑùʹÓÃ: :colo mine
Ò»°ãÀ´Ëµ, ĬÈϵÄÅäÉ«·½°¸¾ÍÒѾºÜºÃ¿´ÁË.
ÓÐʱÏë×Ô¼º¶¨Ò幨¼ü×ÖÑÕÉ«:
:highlight Comment ctermfg=cyan guifg=cyan
Õâ¾äÔÚд´úÂëʱºÜ¹ÜÓõÄ, ±íʾעÊÍÓÃÀ¶É«ÏÔʾ.
ÆäËü¾ßÌåʹÓÿɲο¼ vim ×Ô´øµÄÎĵµ(¼ûºóÃæ)
5. Îĵµ
5.1 ²é¿´°ïÖú
-----------------------------------------------------------------------
ÌõÄ¿ ǰ׺ Àý×Ó
-----------------------------------------------------------------------
NormalģʽÃüÁî ÎÞ :h k
CRTL¿ØÖÆ×Ö·û CRTL_ :h CRTL_r
VisualÊÓͼģʽ v :h v_u
Insert²åÈëģʽÃüÁî i :h i_CRTL-o
ex-ģʽÃüÁî : :h :set
Command-lineÃüÁîÐб༠c :h c_
ÃüÁî²ÎÊý - :h -m
Ñ¡Ïî ' :h 'winminwidth'
-----------------------------------------------------------------------
:h
:h
:h
:helpg[rep] {pattern} ËÑË÷ËùÓеİïÖúÎı¾²¢¸ø³öÒ»¸öÆ¥Åä {pattern} ÐеÄÁбí.
5.2 ÈëÃÅÎĵµ
a. $ vimtutor
ÔÚ shell ÏÂÖ´ÐÐ vimtutor ¾Í»á½ø»á vim µÄÈëÃŽ̳Ì.
b. ½øÈë vim ºóÊäÈë :h ¾Í½øÈë vim µÄ°ïÖú, À¶É«ÈçÏÂÃæµÄÕâЩ
|usr_22.txt| Finding the file to edit
|usr_23.txt| Editing other files
|usr_24.txt| Inserting quickly
µÄÁ½ÊúÏßÖ®¼äµÄÎĵµ¶¼ÒѾ×÷ÁË tag , °Ñ¹â±êÒÆµ½ÏàӦλÖþͿÉÒÔÓà ^] Ìø×ªÁË.
c. ÈôÏë¿´Ö¸Áî f µÄ°ïÖú, ÊäÈë :h f ¼´¿É.
d. ¿ÉÒÔµ½ www.vim.org ²é¿´
6. ²Î¿¼Îĵµ
²Î¿¼ÁË vim ×Ô´øµÄÎĵµ: ¼´½øÈë vim ºó, °´ :h