Thursday, 28. February 2008, 01:22:46
â¼
æç´¢/joe/e : 设置å
æ å°å¹é
"joe"çæ«å°¾
/joe/e+1 : 设置å
æ å°å¹é
"joe"çæ«å°¾ååç§»ä¸ä½
/joe/s-2 : 设置å
æ å°å¹é
"joeâçå¼å¤´åå移两ä½
/joe/-2 : 设置å
æ å°å¹é
"joeâçè¡ååä¸ç§»ä¸¤è¡çå¼å¤´
/^joe.*fred.*bill/ : å¹é
以âjoeâå¼å¤´ä¸"joe"å°"fred"å°"bill"ä¹é´æ²¡æå符æè
æå符
/^[A-J]\+/ : æç´¢ä»¥'A'å°âJâé´çä¸ä¸ªæè
å¤ä¸ªåæ¯ç»åçå¼å¤´
/begin\_.*end : å¤è¡å¹é
ï¼beginåendå¯ä»¥ä¸å¨åä¸è¡ï¼å 为\_.å
æ¬\n
/fred\_s*joe/i : å¯ä»¥æ¯ä»»ä½ç©ºç½å符å
æ¬ç©ºæ ¼ï¼\tï¼\nçç
/fred\|joe : æç´¢fredæè
joe
/.*fred\&.*joe : æç´¢åæ¶å
æ¬fredè·joeçè¡ã注æï¼\&表示âä¸âï¼æä»¥è¡ä¸ä¸ä¸å®è¦æ±fredå¨joeå
/\<fred\>/i : æç´¢ç¬ç«çåè¯fred
/\<\d\d\d\d\> : æç´¢ç¬ç«ç4使°å
/\D\d\d\d\d\D : æç´¢6ä½å符串ï¼ä¸é´4使°åï¼é¦å°¾ä¸¤ä½ä¸è½ä¸ºæ°å
/\<\d\{4}\> : å/\<\d\d\d\d\>
â¼
æ¥æ¾ç©ºè¡/^\n\{3} : å¹é
3个è¿ç»ç空è¡
â¼
ä½¿ç¨æ£å表达å¼ç»æ¥æ¾/\(fred\).*\(joe\).*\2.*\1â¼
æ£å表达å¼éå¤/^\([^,]*,\)\{8}â¼
visual searching:vmap // y/<C-R>"<CR> : å¯è§æ¨¡å¼ä¸çé®çæ å°ãæ//æ å°æâæ¥æ¾å½åéä¸çææ¬âï¼y表示å°å½åéä¸å
容æ·è´å°"å¯åå¨ä¸ï¼ç¶å/å¼å§æ¥æ¾ï¼æ¥æ¾å
容æ¯åé¢çè¾å
¥ï¼<C-R>表示ctrl-rï¼<CR>æ¯å车
:vmap <silent> // y/<C-R>=escape(@", '\\/.*$^~[]')<CR><CR> : å
æ¬ç©ºç½å符ï¼å ä¸<silent>ï¼æ¯ä¸ºäºå¨å±å¹æä¸é¢çå½ä»¤è¡ä¸æ¾ç¤ºè¯¥å½ä»¤ã
â¼
\zs å \ze å¹é
å :h /\zs/<\zs[^>]*\ze> : å¹é
å°æ¬å·ä¸çå
容
â¼
é¶å®½åº¦å¹é
:h /\@=/<\@<=[^>]*>\@= : å¹é
<>æ ç¾ä¸çå
容ï¼è忽ç¥<å>æ¬èº«
/<\@<=\_[^>]*>\@= : åä¸ä¾ç¸æ¯ï¼å·®å«å¨äºå
许跨è¡
â¼
å¤è¡æ¥æ¾ \_ çæææ¯å
æ¬æ¢è¡ç¬¦/ : å¹é
ç»å°¾çææå
容
/fred\_s*joe/i : å¹é
fredå¼å§å°joeï¼ä¹é´æ²¡æä»»ä½å符æè
æ¯æç©ºç½å符
/bugs\(\_.\)*bunny : å¹é
ææbugså°bunnyçå符串
:h \_ : help
â¼
æ¥æ¾å½æ°å£°æï¼nmap为normal模å¼ä¸çé®çæ å°:nmap gx yiw/^\(sub\<bar>function\)\s\+<C-R>"<CR> : yiw表示å°å½åæå¨åè¯æ·è´å°å¯åå¨"ä¸ï¼<bar>表示|ï¼å³subæè
function
â¼
æ¥æ¾å¤ä¸ªæä»¶:bufdo /searchstr/ : å¨å¤ä¸ªæä»¶ç¼å²åºéæ§è¡æ¥æ¾
â¼
æ´å¥½çå¤æä»¶æ¥æ¾å®ä½æ¹æ³:bufdo %s/searchstr/&/gic : å¨å¤ä¸ªæä»¶ç¼å²åºéæ¥æ¾ï¼æä¸n忢
â¼
ææ ·ä¸ä½¿ç¨ / æ¥æ¥æ¾ç½å?http://www.vim.org/ : å䏿¥æ¾
â¼
æ¥æ¾æå®å符以å¤çå符串/\c\v([^aeiou]&\a){4} : æ¥æ¾4个è¾
é³åæ¯ï¼\c表示忽ç¥å¤§å°åï¼\v表示å颿æasciiå符ï¼é¤äº0-9ï¼a-zï¼A-Z以å_ï¼åæç¹æ®å«ä¹ï¼å°±æ¯æè°é常magicï¼è \V表示åé¢çå
容ä¸åªæåææ \å«æç¹æ®å«ä¹ï¼å°±æ¯æè°çé常ä¸magicï¼(å)ä¸é´çå
容ï¼è¡¨ç¤ºé¦å
ä¸è½æ¯aeiouï¼ä½æ¯å¿
é¡»æ¯\a(忝)ã
----------------------------------------
â¼
æ¿æ¢:%s/fred/joe/igc : æ®éæ¿æ¢å½ä»¤
:%s/\r//g : å é¤ DOS çæ¢è¡ç¬¦ ^M
â¼
ä½ çææ¬æä»¶æ¯å¦ä¹±ä¸å
«ç³çææä¸è¡ï¼ä½¿ç¨å¦ä¸å½ä»¤:%s/\r/\r/g : è½¬æ¢ DOS å车符 ^M ä¸ºçæ£çå车符
:%s= *$== : å é¤è¡å°¾ç©ºç½
:%s= \+$== : åä¸
:%s#\s*\r\?$## : å é¤å°¾é¨ç©ºç½ådosæ¢è¡ç¬¦
:%s#\s*\r*$## : åä¸
â¼
å é¤ç©ºè¡:%s/^\n\{3}// : å é¤è¿ç»3个空è¡
:%s/^\n\+/\r/ : å缩空è¡ï¼å¤ä¸ªæ¿æ¢ä¸ºä¸ä¸ª
%s#<[^>]\+>##g : å é¤htmlçtagé¨å
â¼
å¦æä½ åªæ³å¦ä¸æï¼é£ä¹å°±æ¯è¿ä¸ªäº:'a,'bg/fred/s/dick/joe/igc : é常æç¨
# ''a,''bæå®ä¸ä¸ªèå´ï¼mark a ~ mark b
# g//ç¨ä¸ä¸ªæ£åè¡¨è¾¾å¼æåºäºè¿è¡æä½çè¡å¿
é¡»å¯ä»¥è¢«fredå¹é
# çåé¢ï¼g//æ¯ä¸ä¸ªå
¨å±æ¾ç¤ºå½ä»¤
# s/dick/joe/igcå对äºè¿äºæ»¡è¶³æ¡ä»¶çè¡è¿è¡æ¿æ¢
â¼
å¤å¶æåä¸ä¸ªå段:%s= [^ ]\+$=&&= : å¤å¶æåä¸ä¸ªå段
:%s= \f\+$=&&= : 䏿 ·
:%s= \S\+$=&& : 䏿 ·ï¼
â¼
è®°å¿ï¼ååå¼ç¨ï¼:s/\(.*\):\(.*\)/\2 : \1/ : å°ä¸¤ä¸ªåæ®µé¢ å
:%s/^\(.*\)\n\1$/\1/ : å é¤éå¤è¡
â¼
é贪婪å¹é
\{-}:%s/^.\{-}pdf/new.pdf/ : å°ç¬¬ä¸ä¸ªpdfçååæ¢ä¸ºnew.pdf
â¼
使ç¨å¯éåå \?:%s#\<[zy]\?tbl_[a-z_]\+\>#\L&#gc : å¹é
tblå颿²¡æåæ¯ï¼æè
zåyä¸çæä¸ä¸ªåæ¯ï¼ç¶åå°ææç忝å为å°å
â¼
è·¨è¶å°½éå¤çè¡:%s/// : å é¤å¤è¡æ³¨é
:help /\{-} : æ¥çé贪婪å¹é
çæ´å¤å¸®å©
â¼
使ç¨å¯å卿¿æ¢:s/fred/<c-r>a/g : å°fredæ¿æ¢ä¸ºå¯åå¨aéçå
容ï¼<c-r>为æä¸Ctrlä¸rï¼ç¶åè¾å
¥aåï¼å¯åå¨açå
容ä¼åºç°å¨å½ä»¤è¡
:s/fred/<c-r>asome_text<c-r>s/g
:s/fred/\=@a/g : ä¸ç¬¬ä¸æ¡çä½ç¨ç¸åï¼ä½æ¯æ´ä¼é
ä¸äºï¼å 为ä¸ä¼å¨å½ä»¤è¡æ¾ç¤ºå¯åå¨çå
容
â¼
å¨ä¸è¡éåå¤ç§å½ä»¤:%s/\f\+\.gif\>/\r&\r/g | v/\.gif$/d | %s/gif/jpg/ : å°ææå¸¦æ.gifçè¡ï¼åååå å
¥ä¸ä¸ªç©ºè¡ï¼å°ä¸å¸¦æ.gifåæ ·çè¡å
¨é¨å é¤ï¼å°ææè¡ä¸çgifæ¢æjpgï¼æ³¨æä¸æ¡è¯å¥ï¼ä¸æ¦æä¸æ¡å¤±è´¥ï¼å䏿§è¡ä¸é¢çè¯å¥
:%s/a/but/gie|:update|:next : é¦å
ï¼å°å½åæä»¶ä¸çææaå为butï¼ç¶åä¿åæä»¶ï¼æåè¿å
¥ä¸ä¸ä¸ªæä»¶ç¼ååºã妿æå¤ä¸ªæä»¶éè¦å¦æ¤å¤çï¼å¯ä»¥èèä½¿ç¨ @:æ¥éå¤ï¼@:çæä¹æ¯ï¼æ§è¡ä¸ä¸æ¬¡çå½ä»¤è¡å½ä»¤n次ã
â¼
æè¿ç®:%s/suck\|buck/loopy/gc : æ¿æ¢suckæè
buck为loopyï¼è¿é|䏿¯ç®¡éï¼
â¼
è°ç¨vim彿°:s/__date__/\=strftime("%c")/ : å°__date__æ¿æ¢æå½åæ¥æï¼ä½¿ç¨strftime彿°ã注æ\=表示å颿¯è¡¨è¾¾å¼ï¼ç»æå¯è½æ¯2008-1-3 17:59:46
â¼
å¤çåæ®µï¼æ¿æ¢ææå¨ç¬¬ä¸ä¸ªå段ä¸çstr1为str2:%s:\(\(\w\+\s\+\)\{2}\)str1:\1str2:â¼
交æ¢ç¬¬ä¸åè·ç¬¬åå:%s:\(\w\+\)\(.*\s\+\)\(\w\+\)$:\3\2\1:â¼
è¿æ»¤formä¸çå
容æ¾å¨å¯åå¨é:redir @*|sil exec 'g#<\(input\|select\|textarea\|/\=form\)\>#p'|redir END : rediræ¯å°æ§è¡çç»æéå®åå°åé¢ç*å¯åå¨ä¸ï¼silæ¯silent
:nmap ,z :redir @*<Bar>sil exec 'g@<\(input\<Bar>select\<Bar>textarea\<Bar>/\=form\)\>@p'<Bar>redir END<CR> : æ®é模å¼ä¸ï¼æ²å
¥,zï¼å½ä»¤è¡æ§è¡redir @*|sil exec 'g@<\(input\|select\|textarea\|/\=form\)\>@p'|redir ENDâ¼
ä¸ä½ä»¥ä¸çæ°åå3ï¼å¸¦è¿ä½ï¼è¿ä¸ªå½ä»¤æºæè¶£ï¼:%s/\d\+/\=(submatch(0)-3)/â¼
å
å«locæè
functionsçè¡ä¸çæ°åå 6:g/loc\|function/s/\d/\=submatch(0)+6/â¼
æ¯ä¸é¢æ´å¥½çæ¹æ³:%s#txtdev\zs\d#\=submatch(0)+1#g : \zs表示æ¯sè¦å¹é
ççå
容çå¼å¤´
:h /\zs : æ¥ç帮å©
â¼
åç¼ä¸ºggçæ°åå 6:%s/\(gg\)\@<=\d\+/\=submatch(0)+6/:h zero-width : æ¥ç帮å©
â¼
æ¿æ¢ä¸ä¸ªç¹å®å符串为æ°å:let i=10 | 'a,'bg/Abc/s/yy/\=i/ |let i=i+1 : å°yyè½¬æ¢æ10ï¼11ï¼12çç
â¼
æ¯ä¸é¢çæ´ç²¾ç¡®:let i=10 | 'a,'bg/Abc/s/xx\zsyy\ze/\=i/ |let i=i+1 : å°xxyy è½¬æ¢æ xx11ï¼ç¬¬ä¸è¡ï¼ï¼xx12ï¼ç¬¬äºè¡ï¼ï¼xx13ï¼ç¬¬ä¸è¡ï¼
â¼
åç°è¦æ¿æ¢çææ¬ï¼æ¾å
¥å
åï¼ç¶å使ç¨\zsæ¥ç®åæ¿æ¢:%s/"\([^.]\+\).*\zsxx/\1/ : \zs表示æ¯sè¦å¹é
ççå
容çå¼å¤´
â¼
å°å
æ ä¸çåè¯ï¼æ¾å
¥æ¿æ¢è¯å¥çLHSä¸:nmap <leader>z :%s#\<<c-r>=expand("<cword>")<cr>\># : <leader>卿²¡æå®ä¹mapleaderæ¶ä¸º\ï¼å®ä¹å为mapleaderçå¼ãLHSæçæ¯sæ¿æ¢åé¢ï¼è¢«æ¿æ¢çå
容ï¼å¨å·¦æè¾¹ï¼ãæ®é模å¼ä¸ï¼å¦æå
æ ä¸ä¸ºabcï¼åè¾å
¥\z两个å符ï¼ç»æå½ä»¤è¡åºç°ï¼%s#\<abc\>#ï¼ç¶åä½ å°±å¯ä»¥æ¥çè¾å
¥æ¿æ¢åçå
容äºã
â¼
å°å¯è§æ¨¡å¼ä¸çé«äº®ææ¬ï¼æ¾å
¥æ¿æ¢è¯å¥çLHSä¸:vmap <leader>z :<C-U>%s/\<<c-r>*\>/----------------------------------------
â¼
以ä¸åè½ç¸åï¼å¨æ¿æ¢è¯å¥å
é¨è¿è¡æ¿æ¢â¼
æ¯è¡çä¸é¨åä¸ï¼åªæ§è¡å¤ä¸ªååç¬¦çæ¿æ¢:%s,\(all/.*\)\@<=/,_,g : ç¨_æ¿æ¢allåçææ/ï¼all/ä¸ç/ä¸å
â¼
åè½åä¸:s#all/\zs.*#\=substitute(submatch(0), '/', '_', 'g')#
â¼
éè¿å°ä¸è¡åå¼ï¼ç¶åéæ°ç»åï¼è¾¾å°æ¿æ¢çææ:s#all/#&^M#|s#/#_#g|-j! : å¨windowsä¸ä½¿ç¨äºmswinçæ¨¡å¼ï¼æä»¥^Må¾è¾å
¥ä¸º\rï¼åµåµ
â¼
卿¿æ¢å½ä»¤ä¸ä½¿ç¨æ¿æ¢:%s/.*/\='cp '.submatch(0).' all/'.substitute(submatch(0),'/','_','g')/ : ä¸workï¼å 为all/åé¢ç/åsææç/æéå¤ãæä»¥ææ¹ä¸º :%s#.*#\='cp '.submatch(0).' all/'.substitute(submatch(0),'/','_','g')#
----------------------------------------
â¼
å
¨å±æ¾ç¤ºå½ä»¤:g/gladiolli/# : æ¥æ¾å¹¶æ¾ç¤ºå¹é
çè¡å·
:g/fred.*joe.*dick/ : æ¾ç¤ºææå«æ fred,joe & dickçè¡
:g/\<fred\>/ : æ¾ç¤ºåä¸åè¯fred
:g/^\s*$/d : å 餿æç©ºè¡
:g!/^dd/d : å é¤ä¸å«å符串''dd''çè¡
:v/^dd/d : åä¸
:g/fred/,/joe/d : å 餿æçä»fredå°joe
:g/-------/.-10,.d : 以-------为æ è®°å é¤ä¹åç10è¡
:g/{/ ,/}/- s/\n\+/\r/g : å é¤ {...}ä¹é´ç空è¡
:v/\S/d : å é¤ç©ºè¡
:v/./,/./-j : å缩空è¡
:g/^$/,/./-j : åä¸
:g/<input\|<form/p : æè¿ç®
:g/^/put_ : ååè¡å®½ (pu = put)
:g/^/m0 : é¢ åæä»¶ (m = move)
:'a,'bg/^/m'b : é¢ åéä¸ç a å° b
:g/^/t. : éå¤è¡
:g/fred/t$ : æ·è´è¡ä»fredå°ç»å°¾
:g/stage/t'a : æ·è´è¡ä»stage å° marker aï¼a为æ è®°çä½ç½®ï¼
:g/\(^I[^^I]*\)\{80}/d : å 餿å°å
å«80个tabçè¡ï¼æ³¨æï¼^Içè¾å
¥æ¹æ³æ¯ctrl-v, ctrl-i
â¼
éè¡æ¿æ¢:g/^/ if line('.')%2|s/^/zz /â¼
æ¥æ¾æ è®°aä¸bé´ææå
å«"somestr"çè¡ï¼å¹¶å
¨é¨å¤å¶å°ç¬¬ä¸ä¸ªå
å«"otherstr"çè¡å:'a,'bg/somestr/co/otherstr/ : co(py) or mo(ve)
â¼
ä¸ä¸é¢ç¸åï¼ä½æ¯å¤åäºä¸æ¬¡æ¿æ¢:'a,'bg/str1/s/str1/&&&/|mo/str2/:%norm jdd : éè¡å é¤
â¼
å¢å æ°å (é®å
¥ <c-a>) : å¨MS-Windowsä¸<c-a>å·²ç»è¢«å®ä¹ä¸ºå
¨é:.,$g/^\d/exe "norm! \<c-a>": å¢å ä»å½åè¡é¦å°ç»å°¾çæ°å
:'a,'bg/\d\+/norm! ^A : å¢å æ°å
â¼
ä¿åå
¨å±å½ä»¤çç»æ (注æå¿
é¡»ä½¿ç¨æ·»å 模å¼) ä½ éè¦ä½¿ç¨ qaq æ¸
空å¯åå¨a.â¼
å°ç»æåå¨å°å¯åå¨aæè
å¤å¶ç¼ååºä¸:g/fred/y A : æ·»å 带æfredçè¡å°å¯åå¨å°a
:g/fred/y A | :let @*=@a : é¤äºåä¸å¤ï¼è¿å°å¯åå¨açå
å®¹ï¼æ¾å
¥å¤å¶ç¼å²åº
:let @a=''|g/Barratt/y A |:let @*=@a
:'a,'b g/^Error/ . w >> errors.txt : å°æ¥æ¾å
容æ¾å
¥ä¸ä¸ªæä»¶ (æä»¶å¿
é¡»åå¨)
â¼
å¤å¶æ¯ä¸è¡ï¼ç¶åå¨å¤å¶åºæ¥çæ¯ä¸è¡å·¦ä¾§å ä¸ä¸ä¸ª print 'å¤å¶åºæ¥çå
容':g/./yank|put|-1s/'/"/g|s/.*/Print '&'/â¼
ç¨æä»¶ä¸çå
å®¹æ¿æ¢å符串ï¼-d 表示å é¤ä¸é¢çä¸è¡:g/^MARK$/r tmp.ex | -dâ¼
ä¼é
å°æ¾ç¤º:g/<pattern>/z#.5 : 带æä¸ä¸æä¸å¹¶æ¾ç¤º
:g/<pattern>/z#.5|echo "==========" : ä¼é
å°æ¾ç¤º
â¼
å°g//忮鿍¡å¼ä¸çå½ä»¤ç»åèµ·æ¥:g/|/norm 2f|r* : å°ç¬¬äºä¸ª|æ¿æ¢ä¸º*å·
â¼
å°åé¢gå½ä»¤çè¾åºï¼åéå°æ°çªå£ä¸:nmap <F3> :redir @a<CR>:g//<CR>:redir END<CR>:new<CR>:put! a<CR><CR>----------------------------------------
â¼
å
¨å±å½ä»¤åæ¿æ¢å½ä»¤èå§» (强大çç¼è¾è½å):'a,'bg/fred/s/joe/susan/gic : å¯ä»¥ä½¿ç¨ååå¼ç¨æ¥å¹é
:g/fred/,/joe/s/fred/joe/gic : éè¡æ¨¡å¼
----------------------------------------
â¼
å
æ¾fredï¼ç¶åæ¾joe:/fred/;/joe/-2,/sid/+3s/sally/alley/gIC : æåè¿ä¸ä¸ªCï¼æåä¸é½æ²¡æï¼ä¼°è®¡æ¯c
----------------------------------------
â¼
为æ¯ä¸è¡çæä¸ä¸ªæä»¶ï¼æä»¶åä»1.txtå¼å§ï¼ä¾æ¬¡ä¸º1.txt,2.txt,3,txtçç:g/^/exe ".w ".line(".").".txt"----------------------------------------
â¼
ç»å¯¹ç²¾å----------------------------------------
* # g* g# : æ¥æ¾å½åå
æ ä¸çåè¯ï¼å个åè¯ï¼ (<cword>) (åå/åå)
% : å¹é
æ¬å· {}[]()
. : éå¤ä¸æ¬¡æä½
@: : éå¤ä¸æ¬¡çå½ä»¤
matchit.vim : é%è½å¹é
<script> <?phpçæ è®°
<C-N><C-P> : æå
¥æ¨¡å¼ä¸èªå¨å®æå¡«è¯
<C-X><C-L> : è¡èªå¨å®æï¼è¶
级æç¨ï¼
/<C-R><C-W> : æå个<cword>åè¯æ¾å
¥æç´¢æè
å½ä»¤è¡
/<C-R><C-A> : æåç¬¦ä¸²ä¸æçåè¯<cword>æ¾å
¥æç´¢æè
å½ä»¤è¡
:set ignorecase : 忽ç¥å¤§å°å
:syntax on : æå¼è¯æ³é«äº® Perl,HTML,PHP çç
:h regexp<C-D> : æctrl+då¾å°å
å«regexpçå表
(ætabèªå¨è¡¥é½)
----------------------------------------
â¼
ç®åç¼è¾æ´æ° _vimrcæä»¶:nmap ,s :source $VIM/_vimrc : æ®é模å¼ä¸çé®çæ å° ,sæ å°æå è½½ç¨æ·ç®å½ä¸ç_vimrcæä»¶
:nmap ,v :e $VIM/_vimrc : ,væ å°ææå¼_vimrcæä»¶
----------------------------------------
# å¯è§æ¨¡å¼ (æ¹ä¾¿å¢å HTML æ ç¾)
:vmap sb "zdi<C-R>z<ESC> : å¨å¯è§æ¨¡å¼ä¸å°éä¸çææ¬åååå«å 䏿äºä¸è¥¿ã"z表示å¯åå¨zï¼dæ¯å é¤ï¼ç¶åi表示æå
¥ï¼<C-R>æctrl-rï¼ç¶åå zï¼è¡¨ç¤ºç²è´´å¯åå¨zçå
å®¹ï¼æåescapeé®ã注æï¼æ¬ä¾å°å é¤çå
容å¸äºåå»ï¼æä»¥ç»ææ¯ä»ä¹åå齿²¡æã
:vmap st "zdi<?= <C-R>z ?><ESC> : å¨ååå ä¸<?=å?>ã
----------------------------------------
â¼
æµè§:Exp(lore) : æµè§æä»¶
:Sex(plore) : åå²çªå£æµè§æä»¶
:ls : æ¾ç¤ºç¼å²åº
:cd .. : 设置å½åç®å½ä½ç½®
:args : æ¥çå½åæå¼çæææä»¶
:lcd %:p:h : æ¹åè·¯å¾å°å½åç¼è¾çæä»¶
:autocmd BufEnter * lcd %:p:h : æ¾å
¥.vimrcèªå¨å®æä¸é¢çå½ä»¤
----------------------------------------
â¼
ç¼å²åºæµè§(ä¸ç´æåå10çvimèæ¬)# éè¦ bufexplorer.vim ã(http://www.vim.org/script.php?script_id=42)
\be : ç¼å²æµè§å¨ä¸æ¥çç¼å²å表
\bs : åä¸ï¼ä½æ¯åå²çªå£
----------------------------------------
â¼
转æ¢å¤§å°åguu : å°æ´è¡çåæ¯è½¬æ¢æå°å
gUU : å°æ´è¡çåæ¯è½¬æ¢æå¤§å
Vu : 转æ¢éä¸çè¡ï¼å°åï¼
VU : 转æ¢éä¸çè¡ï¼å¤§åï¼
g~~ : åå转æ¢
vEU : 转æ¢è¯å¤§åï¼v表示è¿å
¥å¯è§æ¨¡å¼ï¼E表示è¦çå°è¯çæ«å°¾ï¼U表示大åã
vE~ : åå转æ¢è¯
ggguG : å°å½åç¼è¾æä»¶å
容å
¨é¨è½¬æ¢æå°å
â¼
å¯è§æ¨¡å¼ä¸éæ©ææç忝忰å (æ¾å
¥ .vimrcæä»¶ä¸)vmap ,c :s/\<\(.\)\(\k*\)\>/\u\1\L\2/g<CR>â¼
大忿å¥åç第ä¸ä¸ªåæ¯:%s/[.!?]\_s\+\a/\U&\E/g----------------------------------------
gf : æå¼å½åå
æ 䏿åçæä»¶
:nnoremap gF :view <cfile><cr> : æå¼å½åå
æ 䏿å
æ åçæä»¶ï¼å¦æä¸åå¨åå建
ga : æ¾ç¤ºå½åå
æ ä¸å个åçasciiç ï¼åè¿å¶ï¼åå
è¿å¶â¦â¦
ggVGg? : å°æ´ä¸ªæä»¶ç¨rot13ç¼ç â¦â¦ï¼è°ç徿å~~hoho)
ggg?G : åä¸ (é对大æä»¶)
:8 | normal VGg? : å°ç¬¬å
«è¡ç¨rot13ç¼ç
:normal 10GVGg? : åä¸
<C-A>,<C-X> : å¢å ï¼åå°å½åå
æ ä¸çæ°åï¼windowç¨æ·ç¼ºçæ¯å°C-Aæ å°æéä¸å
¨æï¼æä»¥éè¦éå®ä¹ CNTRL-A
<C-R>=5*5 : æå
¥25 (å°å计ç®å¨)
----------------------------------------
â¼
å 个彩èï¼æææ:h 42 : (è¿æ
http://www.google.com/search?q=42):h holy-grail:h!----------------------------------------
â¼
æ è®° & ç§»å¨'. : è·³åæåç¼è¾çè¡ (è¶
æç¨)
`. : åä¸ï¼ä½æ¯å®ä½ç¼è¾ç¹
g; : è·³è½¬å°æ¯è¾æ§çç¼è¾ä½ç½®ï¼å¦ææçè¯ï¼ (vim6.3åçæ°åè½)
g, : è¿ä¸ªæ¯è¾æ°çä½ç½® (åä¸)
:changes : æåºæ¹åå表
:h changelist : æ¥çâæ¹å表跳转âç帮å©
<C-O> : 便¬¡æ²¿çä½ ç跳转记å½ååè·³ (仿è¿ç䏿¬¡å¼å§)
<C-I> : 便¬¡æ²¿çä½ ç跳转记å½ååè·³
:ju(mps) : ååºè·³è½¬è½¨è¿¹
:help jump-motions:history : ååºåå²è®°å½
:his c : å½ä»¤è¡åå²
:his s : æç´¢åå²
q/ : æç´¢å½ä»¤åå²ççªå£
q: : å½ä»¤è¡å½ä»¤åå²ççªå£
:<C-F> : åå²çªå£
----------------------------------------
â¼
缩å & æ å°:map <f7> :'a,'bw! c:/aaa/x:map <f8> :r c:/aaa/x:map <f11> :.w! c:/aaa/xr<CR>:map <f12> :r c:/aaa/xr<CR>:ab php : æ¥ç以phpå¼å¤´ç缩å
:map , : ååºææçæ å°ï¼ä»¥éå·å¼å§çï¼
â¼
å
许æ å° F10 (win32)set wak=no : :h winaltkeys
â¼
æ å°ä¸å¸¸ä½¿ç¨ç表示<CR> : å车
<ESC> : Esc
<LEADER> : 峿æ
<BAR> : 管é符å·
<BACKSPACE> : éæ ¼é®
<SILENT> : ä¸åæ¾
#æ¾ç¤ºèªå®ä¹ç RGB é¢è²æ¾ç¤ºå½åå
æ ä¸çå符串 ä¾å¦ #445588
:nmap <leader>c :hi Normal guibg=#<c-r>=expand("<cword>")<cr><cr>map <f2> /price only\\|versus/ :in a map need to backslash the \----------------------------------------
â¼
ç®åç PHP è°è¯å°æææ¾ç¤ºçåéæ¾å
¥å¯åå¨aiab phpdb exit("
Debug <C-R>a ");----------------------------------------
â¼
使ç¨å¯å卿¥æ å° (æ¾å
¥ .vimrcæä»¶èªå¨å è½½):let @m=":'a,'bs/":let @s=":%!sort -u"----------------------------------------
â¼
ååºå¯åå¨:reg : æ¾ç¤ºå½åææçå¯åå¨
:reg a : æ¾ç¤ºå¯åå¨aä¸çå
容
"1p.... : å¼ç¨ä¸ä¸ªå«1çå¯åå¨
:let @y='yy@"' : pre-loading registers (put in .vimrc)
qqq : æ¸
空å¯åå¨ "q"
----------------------------------------
â¼
ä¸äºæç¨çå³çª"ayy@a : æå½åè¡ä½ä¸ºå½ä»¤æ§è¡
yy@" : ä¸é¢çå¿åå¯åå¨
u@. : åªæ§è¡é®å
¥çå½ä»¤
----------------------------------------
â¼
ä»å
¶å®å½ä»¤å¤è·å¾è¾å
¥ï¼éè¦å¤é¨å½ä»¤ï¼:r!ls.exe : ä»ls è·å¾è¾å
¥æå
¥å°å½åä½ç½®
!!date : ä»dateè·å¾è¾å
¥ï¼å é¤å½åè¡ï¼
â¼
使ç¨å¤é¨sortæåº:%!sort -u : ç¨sortæåºæ´ä¸ªæä»¶ï¼ç»æè¦çæ´ä¸ªæä»¶ï¼
:'a,'b!sort -u : ä»mark aå°mark bä¹é´çå
容è¿è¡æåº
!1} sort -u : æåºä¸ä¸ªæ®µè½
:g/^$/;,/^$/-1!sort : å°æ¯ä¸ªåæåº(注æè¿ä¸ªå
³é®ç;)
----------------------------------------
â¼
å¤æä»¶ç®¡ç (åºæ¬ç):bn : 跳转å°ä¸ä¸ä¸ªbuffer
:bp : 跳转å°åä¸ä¸ªbuffer
:wn : ä¿åå½åbuffer并跳转å°ä¸ä¸ä¸ªbuffer (è¶
æç¨)
:wp : ä¿åå½åbuffer并跳转å°åä¸ä¸ªbuffer
:bd : æå½åæä»¶ä»bufferç§»åº (è¶
æç¨)
:bun : å¸è½½å½åbuffer (å
³éè¿ä¸ªçªå£ä½æ¯ä¸ç§»åº)
:badd file.c : æ·»å file.cå°bufferå表
:b 3 : åå¾ç¬¬ä¸ä¸ª buffer
:b main : åå¾å«æmainçbufferä¸ æ¯å¦è¯´ main.c
:sav php.html : æå½åæä»¶å为php.htmlå¹¶æå¼
:sav! %<.bak : æ¢ä¸ä¸ªåç¼åä¿å (æ§æ¹æ³)
:sav! %:r.cfm : åä¸
:sav %:s/fred/joe/ : æ¿æ¢æä»¶å
:sav %:s/fred/joe/:r.bak2 : æ¿æ¢æä»¶ååç¼
:!mv % %:r.bak : éå½åå½åæä»¶
:e! : æå¼æªä¿®æ¹ä¹åçæä»¶
:w c:/aaa/% : å卿件尿å®ä½ç½®
:e # : ç¼è¾æ 记为#çæä»¶å¨bufferä¸
:rew : è¿åå°ç¬¬ä¸ä¸ªå¯ç¼è¾çæä»¶
:brew : åå°ç¬¬ä¸ä¸ªbuffer
:sp fred.txt : åå²çªå£æå¼fred.txt
:sball,:sb : æææç bufferså岿¾ç¤ºå¨ä¸ä¸ªçªå£ä¸ (è¶
æç¨)
:scrollbind : 让æ¯ä¸ªå离ççªå£ï¼åæ¥æ»å¨
:map <F5> :ls<CR>:e # : æF5æ¾ç¤ºææbuffer, å¹¶æ¾ç¤ºè¡å·
:set hidden : å
许ä¸ä¿åå½åbufferèè¿è¡åæ¢
----------------------------------------
â¼
å¨åå²çªå£ä¸å¿«é忢map <C-J> <C-W>j<C-W>_map <C-K> <C-W>k<C-W>_----------------------------------------
â¼
å½å¶å½ä»¤ (æå¥½çæå·§)qq : å½å¶å½ä»¤æ¾å
¥ qå¯åå¨
ï¼è¾å
¥ä¸äºå½ä»¤ï¼
q : å½å¶ç»æ
@q : æ§è¡æ¾å
¥å¯åå¨qä¸çå
容
@@ : éå¤
5@@ : éå¤5次
â¼
ç¼è¾ä¸ä¸ª å¯åå¨/å½å¶"qp : æ¾ç¤ºå¯åå¨qä¸çå
容(æ®é模å¼ä¸)
<ctrl-R>q : æ¾ç¤ºå¯åå¨qä¸çå
容 (æå
¥æ¨¡å¼ä¸)
â¼
ä½ ç°å¨å¯ä»¥çå°è®°å½å
容ï¼é便ç¼è¾"qdd : å é¤ï¼éæ°åå
¥q
@q : æ§è¡ å½å¶/å¯åå¨ q
â¼
å¨å¯è§åä¸è¿è¡è®°å½1) å®ä¹è®°å½/å¯åå¨
qq:s/ to/ from/g^Mq2) å®ä¹å¯è§å
V}3) é®å
¥:å°æ¾ç¤ºä¸é¢ä¿¡æ¯
:'<,'>4)宿å¦ä¸æä½
:'<,'>norm @q----------------------------------------
â¼
å°ä¸ä¸ªå½å¶åä¸ä¸ªæ å°ç»å® (å¨å½ä»¤æ¨¡å¼ä¸ç»æ)nnoremap ] @q:w!<bar>bd----------------------------------------
â¼
å¯è§åæ¨¡å¼æä¾ä¸ç§çµæ´»æç¨çæ¹æ³éæ©ä¸åææ¬ä¾æä½ç¬¦ä½¿ç¨â¼
å¯è§å模å¼åºç¡v : è¿å
¥å¯è§å模å¼
V : è¿å
¥å¯è§åè¡éæ©æ¨¡å¼
<C-V> : è¿å
¥å¯è§ååéæ©æ¨¡å¼
gv : éæ°éæ©
o : éæ©çåºå头尾移å¨
"*y : å¤å¶éæ©åºåå°paste buffer
V% : éæ©ä¸ä¸ªå¹é
段
V}J : åå¹¶ä¸ä¸ªæ®µè½
V}gJ : åå¹¶ä¸ä¸ªæ®µè½ï¼å¹¶ä¿çç©ºæ ¼
----------------------------------------
â¼
å é¤éä¸ç10è¡çå两个å符ï¼ä¸è¿è¿éåºè¯¥å设æ¯ç´§åçæçæ ¼å¼ï¼ä¸è½å
å«ç©ºæ ¼ãtabçå符çï¼å¯æ¯ç»å®éªåºè¯¥æ¯å3个å符æå¯¹åï¼ï¼ï¼0<c-v>10j2ld----------------------------------------
â¼
å¦ä½ç¨å¯è§åæ·è´å åâ¼
å¯è§å(å¹¶éé常ç v å½ä»¤)<C-V>ï¼ç¶åéè¿ç§»å¨å½ä»¤éæ©å (win32 <C-Q>)
ç¶åæ§è¡ c,d,y,r çå½ä»¤
----------------------------------------
â¼
ç¨å¦å¤ä¸ä¸ªæ¤ç±»çåï¼è¦çå¯è§åä¸çææ¬ctrl-v move "ay : éä¸ç¬¬ä¸å
ctrl-v move c ctrl-o "aP <esc> : éä¸ç¬¬äºå
----------------------------------------
â¼
_vimrc åºæ¬è®¾ç½®:set incsearch : è¾å
¥æç´¢å½ä»¤æ¶ï¼ç«å³æ¾ç¤ºç®åè¾å
¥ç模å¼å¯¹åºçå¹é
ãå¹é
çå符串被é«äº®ã
:set wildignore=*.o,*.obj,*.bak,*.exe : tabè¡¥å
¨æ¶å¿½ç¥è¿äºå¿½ç¥è¿äº
:set shiftwidth=3 : 设置èªå¨ç¼©è¿ä¸º3个å符
:set vb t_vb=". : å®é模å¼ï¼å
³éåéè·éªç
:set browsedir=buffer : 设置æä»¶æµè§ä½¿ç¨çç®å½
# 注ï¼
:last : ä½¿ç¨æä»¶æµè§å¨æè¿è®¿é®ç¸åçç®å½ã
:buffer : 使ç¨ç¸å
³ç¼å²åºçç®å½ã
:current : 使ç¨å½åç®å½ã
:{path} : ä½¿ç¨æå®ç®å½ã
----------------------------------------
â¼
å¯å¨windowsä¸çIE:nmap ,f :update<CR>:silent !start c:\progra~1\intern~1\iexplore.exe file://%:p<CR> :nmap ,i :update<CR>: !start c:\progra~1\intern~1\iexplore.exe <cWORD><CR>----------------------------------------
â¼
å¨viméæå¼ftpcmap ,r :Nread ftp://209.51.134.122/public_html/index.html cmap ,w :Nwrite ftp://209.51.134.122/public_html/index.html gvim ftp://www.somedomain.com/index.html : ä½¿ç¨ netrw.vim
----------------------------------------
â¼
åå¯åå¨ä¸æ·»å å
容 (使ç¨ç¸åºå¯åå¨åç§°ç大å)â¼
å¤å¶5è¡æ¾å
¥aå¯åå¨ï¼ç¶ååä¸è·³è½¬10è¡åæ·»å 5è¡å°aå¯åå¨"a5yy10j"A5yy----------------------------------------
[I : æ¾ç¤ºå½åè¡ä¸åç¬¦çææå¹é
(è¶
级æç¨)
----------------------------------------
â¼
常è§ç¼©è¿:'a,'b>> : å°mark aå°mark bä¹é´çå
容è¿è¡ä¸¤æ¬¡ç¼©è¿
â¼
èææ¨¡å¼ä¸ç¼©è¿ (å¯éå¤):vnoremap < <gv# è¿æ¯ä¸ä¸ªèææ¨¡å¼ä¸çé®çæ å° < æ å°ä¸º<gv
# < æä¸ºåå
缩è¿ï¼gv ä¸é¢å·²æè§£éï¼ä¸ºéå¤ä¸æ¬¡éåº
# <gv ä¹å°±æ¯å
åå
缩è¿ç¶ååéæ©åæçéåº
# è¿æ ·å°±å¯ä»¥åªæ < å®ç°éå¤ç¼©è¿äº
:vnoremap > >gv : åå
缩è¿ï¼åçåä¸
â¼
å缩è¿>i{>a{â¼
æè
>% and <%# èªå·±è¯è¯çå§ï¼æ¶åå°ç¨ { çè¯è¨å¾æç¨ï¼æ¯å¦c,c++ç
----------------------------------------
â¼
éå®å & ç²è´´å°å¯åå¨ * ï¼*为å¯åå¨åç§°ï¼:redir @* : éå®åå½ä»¤å°pasteç¼å²åº
:redir END : ç»æ
:redir >> out.txt : éå®åå°æä»¶
â¼
æä½ç²è´´ç¼å²åº"*yy : å¤å¶å°å¯åå¨
"*p : ä»å¯åå¨ä¸ç²è´´ä¸è¡
â¼
å¤å¶å°ç²è´´ç¼å²åº (æ©å±æ¨¡å¼):'a,'by* : å¤å¶ä¸ä¸ªèå´å°ç²è´´å¯åå¨
:%y* : å¤å¶ä¸ä¸ªæ¬å·å¹é
å°ç²è´´ç¼å²åº
:.y* : å¤å¶å½åè¡å°ç²è´´ç¼å²åº
â¼
ä»åªè´´æ¿ä¸è¿æ»¤é坿å°å符# å½ä»ä¸äº GUI ç¨åºç²è´´æ¶ä¼æç¨å¤
:nmap <leader>p :let @* = substitute(@*,'[^[:print:]]','','g')<cr>"*p----------------------------------------
â¼
éæ°æ ¼å¼åææ¬gq} : åå¹¶ä¸ä¸ªæ®µè½
gqap : å½å段è½
ggVGgq : å
¨é¨æ®µè½
Vgq : å½åè¡
â¼
å¨70åçæ¶åæ¢è¡:s/.\{,69\};\s*\|.\{,69\}\s\+/&\r/g----------------------------------------
â¼
å½ä»¤ä½¿ç¨äºå¤ä¸ªæä»¶:argdo %s/foo/bar/e : 卿ææä»¶ä¸æå :args
:bufdo %s/foo/bar/e:windo %s/foo/bar/e:argdo exe '%!sort'|w! : å
å«å¤é¨å½ä»¤
----------------------------------------
â¼
å½ä»¤è¡æå·§gvim -h : æ¾ç¤ºå¸®å©
ls | gvim - : 管éæä½
cat xx | gvim - -c "v/^\d\d\|^[3-9]/d " : ä»ç®¡éåºè¿æ»¤å
容
gvim -o file1 file2 : åå²çªå£æ¾ç¤ºä¸¤ä¸ªæä»¶
â¼
æå¼æä»¶åæ§è¡ä¸æ¡å½ä»¤gvim.exe -c "/main" joe.c : æå¼ joe.c & è·³è½¬å° "main"
â¼
卿å¼ä¸ä¸ªæä»¶æ¶æ§è¡å¤æ¡å½ä»¤vim -c "%s/ABC/DEF/ge | update" file1.câ¼
å¨ä¸ç»æä»¶ä¸æ§è¡å¤æ¡å½ä»¤vim -c "argdo %s/ABC/DEF/ge | update" *.câ¼
ä»ä¸ç³»åæä»¶ä¸å é¤ä¸ååºåvim -c "argdo /begin/+1,/end/-1g/^/d | update" *.câ¼
èªå¨ç¼è¾æä»¶ (ç¼è¾å½ä»¤åºåEx commandså·²ç»å
å«å¨convert.vimä¸äº)vim -s "convert.vim" file.c# ä¸å è½½.vimrcè·ä»»ä½plugin(干忏
æ°ç VIM^_^)
gvim -u NONE -U NONE -Nâ¼
访é®ç²è´´ç¼å²åºä¸çå
容 (æ¾ç½®å°èæ¬/æ¹å¤çæä»¶ä¸)gvim -c 'normal ggdG"*p' c:/aaa/xpâ¼
å°ç²è´´çå
容éå¾é»è®¤çæå°æºgvim -c 's/^/\=@*/|hardcopy!|q!'â¼
gvim éç grep (win32 or *nix):grep somestring *.php : å建å¹é
çæä»¶å表
â¼
ä½¿ç¨ :cn(åå) :cp(åå) æçºµå表:h grep : æ¥ç帮å©
----------------------------------------
â¼
gvim ç差弿¯è¾gvim -d file1 file2 : vimdiff (æ¯è¾ä¸å·®å¼)
dp : æå
æ å¤çä¸åæ¾å°å¦ä¸ä¸ªæä»¶
do : å¨å
æ å¤ä»å¦ä¸ä¸ªæä»¶åå¾ä¸å
----------------------------------------
â¼
Vim é·é±å¨æ£å表达å¼ä¸ + | ( { é½è¦å ä¸è½¬ä¹ç¬¦(åææ )
/fred\+/ : å¹é
fred/freddy ä½ä¸å¹é
free
/\(fred\)\{2,3}/ : 注æä½ å¿
é¡»å ä¸åææ
----------------------------------------
â¼
\v ï¼æå«åvery magic (é叏齿¯è¿ä¹å«)å¯ä»¥åæ¶è½¬ä¹ç¬¦/codes\(\n\|\s\)*where : æ®éçæ£å表达å¼
/\vcodes(\n|\s)*where : very magic
----------------------------------------
â¼
æå¯¹è±¡éå°å½ä»¤è¡æè
æç´¢è¡<C-R><C-W> : æ§è¡å½åå
æ ä¸çå个åè¯
<C-R><C-A> : æ§è¡å½åå
æ ä¸å°½å¯è½å¤çåè¯
<C-R>- : éè³ä¸ä¸ªå°åå¯åå¨ï¼åæ ·ä½¿ç¨äºæå
¥æ¨¡å¼ï¼
<C-R>[0-9a-z] : éè³ä¸ä¸ªå½åå¯åå¨ (æ¬å¼§åä¸)
<C-R>% : éè³æä»¶å(#ä¹è¡) (åä¸)
<C-R>=somevar : éè³ä¸ä¸ªåé (ä¾å¦ :let sray="ray[0-9]")
----------------------------------------
â¼
æ§å¶å¯åå¨:let @a=@_ : æ¸
é¤å¯åå¨ a
:let @a="" : åä¸
:let @*=@a : æ·è´å¯åå¨ a å° paste buffer
:let @*=@: : æ·è´æåæ§è¡çå½ä»¤å° paste buffer
:let @*=@/ : æ·è´æåæ§è¡çæ¥æ¾å½ä»¤å°paste buffer
:let @*=@% : æ·è´å½åæä»¶å° paste buffer
map <f11> "qyy:let @q=@q."zzz"----------------------------------------
â¼
帮å©çå¸®å© (ä½¿ç¨ TAB):h quickref : VIM å¿«éåè页
:h tips : Vim'èªå·±çæå·§å¸®å©
:h visual<C-D><tab> : èææ¨¡å¼ç帮å©å表
: ç¶å使ç¨tabéæ©å®ä»¬
:h ctrl<C-D> : ææå
³äºctrlé®ç帮å©å表
:helpg uganda : è¿æ»¤å¸®å©æä»¶ ä½¿ç¨ :cn, :cp æ¥æ¾ä¸ä¸ä¸ªååä¸ä¸ª
:h :r : å
³äº :ex çå½ä»¤å¸®å©
:h CTRL-R : æ®é模å¼ç¸å
³
:h /\r : \ræ¯ä»ä¹çææ
:h \\zs : 使ç¨ååæçº¿æ¥æ¾å
³äº \zs ç帮å©
:h i_CTRL-R : 卿å
¥æ¨¡å¼ä¸ <C-R>çè§£é
:h c_CTRL-R : å¨å½ä»¤æ¨¡å¼ä¸ <C-R> çè§£é
:h v_CTRL-V : èææ¨¡å¼
:h tutor : VIM å¿«éæå
<C-[>, <C-T> : å¨å¸®å©å±¥åä¸å¾å & å¾åç§»å¨
gvim -h : VIM å½ä»¤è¡å¸®å©
----------------------------------------
â¼
é项设置å¨é£é:scriptnames : ååºææå·²ç»å è½½ç plugins, _vimrcsæä»¶
:verbose set history? : æ¾ç¤º historyçå¼å¹¶æ¾ç¤ºå¨é£éå®ä¹ç
:function : ååºææå½æ°
:func SearchCompl : æ¾ç¤ºæå®å½æ°çç»è
----------------------------------------
â¼
å¶ä½ä½ èªå·±çVIM 帮å©:helptags /vim/vim64/doc : éæ°ç¼è¯ææ *.txt ç叮婿件å¨è¿ä¸ªç®å½é
:help add-local-help : å¦ä½æ·»å æ¬å°å¸®å©
----------------------------------------
â¼
ç¨å¤é¨ç¨åºè¿è¡æä»¶ (ä¾å¦ php)map <f9> :w<CR>:!c:/php/php.exe %<CR>map <f2> :w<CR>:!perl -c %<CR>----------------------------------------
â¼
å¨å¦ä¸ä¸ªbufferä¸ï¼ææå½åèæ¬çè¾åº:new | r!perl # : æ°å»ºä¸ä¸ªbufferï¼ä»å¦ä¸ä¸ªbufferä¸è¯»å
¥ç»æ
:new! x.out | r!perl # : åä¸ï¼å¹¶æå®ä¸ä¸ªæ°æä»¶å
:new+read!ls
----------------------------------------
â¼
å建ä¸ä¸ªæ°çç¼å²åºï¼å°å¯åå¨qçå
容ç²è´´è¿å»ï¼ç¶å对ç¼å²åºå
容æåº:new +put q|%!sort----------------------------------------
â¼
æå
¥DOSæ¢è¡ç¬¦:%s/$/\<C-V><C-M>&/g : <C-V>为ctrl-v
:%s/$/\<C-Q><C-M>&/g : 对äºWin32åºè¯¥æ¢æctrl-q
:%s/$/\^M&/g : ä½ çå°ç^Mæ¯ä¸ä¸ªå符
----------------------------------------
â¼
èªå¨å é¤è¡å°¾ Doså车符åç©ºæ ¼autocmd BufRead * silent! %s/[\r \t]\+$//autocmd BufEnter *.php :%s/[ \t\r]\+$//e----------------------------------------
â¼
对æå®æä»¶ææä»¶ç±»åæ§è¡æä¸ªå¨ä½autocmd VimEnter c:/intranet/note011.txt normal! ggVGg?autocmd FileType *.pl exec('set fileformats=unix')----------------------------------------
â¼
ææåä¸ä¸ªå½ä»¤è´´å°å½åä½ç½®i<c-r>:â¼
ææåä¸ä¸ªæç´¢æä»¤è´´å°å½åä½ç½®i<c-r>/----------------------------------------
â¼
æ´å¤ç宿åè½<C-X><C-F> : æå
¥å½åç®å½ä¸çä¸ä¸ªæä»¶åå°å½åä½ç½®
# å¨insert模å¼ä¸ä½¿ç¨ï¼ç¶åç¨Ctrl-P/Ctrl-Nå¯ä»¥ç¿»é¡µ
----------------------------------------
â¼
æ¿æ¢ä¸ä¸ªvisualåºåâ¼
éæ©ä¸ä¸ªåºåï¼ç¶åè¾å
¥ :s/Emacs/Vim/ ççï¼vimä¼èªå¨è¿å
¥:模å¼:'<,'>s/Emacs/Vim/g : åé¢ç' '<.'> æ¯vimèªå¨æ·»å ç
gv : éæ°éæ©åä¸ä¸ªå¯è§åºå (é«çº§ï¼)
----------------------------------------
â¼
卿件䏿å
¥è¡å·:g/^/exec "s/^/".strpart(line(".")." ", 0, 4):%s/^/\=strpart(line(".")." ", 0, 5):%s/^/\=line('.'). ' '----------------------------------------
â¼
ç¨VIMçæ¹å¼æ¥ç¼å·è¡:set number : æ¾ç¤ºè¡å·
:map <F12> :set number!<CR> : å转æ¾ç¤ºè¡å·
:%s/^/\=strpart(line('.')." ",0,&ts)â¼
ä»ä»»æè¡å¼å§ç¼å·(éè¦perl):'a,'b!perl -pne 'BEGIN{$a=223} substr($_,2,0)=$a++'â¼
äº§çæ°åå表# å¨ä¸ä¸ªç©ºæä»¶çæä¸è¡ä¸è¾å
¥æ°å223
qqmnYP`n^Aq : in recording q repeat with @q
â¼
éå¢å·²å卿°åå°æä»¶æ«:.,$g/^\d/exe "normal! \<c-a>"â¼
é«çº§éå¢ï¼åè§ï¼http://vim.sourceforge.net/tip_view.php?tip_id=150----------------------------------------
â¼
é«çº§éå¢ (çç徿ç¨)â¼
æä¸é¢å 奿¾å° _vimrclet g:I=0
function! INC(increment)
let g:I =g:I + a:increment
return g:I
endfunction
â¼
ä¾å¦ä»mark a å°mark b éå¢ï¼ä»223å¼å§ï¼æ¥é¿ä¸º5:let I=223:'a,'bs/^/\=INC(5)/â¼
ç» INC å建ä¸ä¸ªæ å°cab viminc :let I=223 \| 'a,'bs/$/\=INC(5)/----------------------------------------
â¼
çæä» 23-64 çæ°åå表o23<ESC>qqYp<C-A>q40@q----------------------------------------
â¼
å¨å½åæå
¥æ¨¡å¼ä¸ç¼è¾/ç§»å¨ (çå¾å¾æç¨)<C-U> : å é¤å
¨é¨
<C-W> : å 餿åä¸ä¸ªåè¯
<HOME><END> : ç§»å¨å°è¡é¦/è¡å°¾
<C-LEFTARROW><C-RIGHTARROW> : åå/åç§»å¨ä¸ä¸ªåè¯
<C-X><C-E>,<C-X><C-Y> : æ»å¨ï¼åªè¦å¨insertä¸ä¿æput
----------------------------------------
# å å¯(å°å¿ä½¿ç¨ï¼ä¸è¦å¿äºå¯ç )
:X : vimä¼æç¤ºä½ è¾å
¥å¯ç
:h :X----------------------------------------
â¼
模å¼è¡ (使æä»¶åªè¯»ç)ï¼å¿
é¡»å¨å/å 5è¡å
// vim:noai:ts=2:sw=4:readonly: :
// vim:ft=html: : ä½¿ç¨ HTML è¯æ³é«äº®
:h modeline----------------------------------------
â¼
建ç«ä½ èªå·±çèå项amenu Modeline.Insert\ a\ VIM\ modeline <Esc><Esc>ggOvim:ff=unix ts=4 ss=4<CR>vim60:fdm=marker<esc>gg----------------------------------------
â¼
ä¸ä¸ªä¿åå½åå
æ ä¸ççä¹åå°ä¸ä¸ªæä»¶ç彿°function! SaveWord()
normal yiw
exe ':!echo '.@0.' >> word.txt'
endfunction
map ,p :call SaveWord()----------------------------------------
â¼
å é¤éå¤è¡ç彿°function! Del()
if getline(".") == getline(line(".") - 1)
norm dd
endif
endfunction
:g/^/ call Del() : 使ç¨è¯¥å½æ°çä¸ä¸ªä¾å
----------------------------------------
â¼
ååèç¼ç (non alpha-numerics):digraphs : æ¾ç¤ºç¼ç 表
:h dig : 帮å©
i<C-K>e' : è¾å
¥ é
i<C-V>233 : è¾å
¥ é (Unix)
i<C-Q>233 : è¾å
¥ é (Win32)
ga : æ¥çå符çhexå¼
# å é¤é ascii å符
:%s/[<C-V>128-<C-V>255]//gi : where you have to type the Control-V
:%s/[â¬-ÿ]//gi : Should see a black square & a dotted y
:%s/[<C-V>128-<C-V>255<C-V>01-<C-V>31]//gi : All pesky non-asciis
:exec "norm /[\x00-\x1f\x80-\xff]/" : same thing
# å°éasciiåç¬¦ï¼æå°æç´¢æ¡ä¸
yl/<C-R>" /[^a-zA-Z0-9_[:space:][:punct:]] : search for all non-ascii
----------------------------------------
â¼
æä»¶åèªå¨å®æ (ä¾å¦ main_c.c):e main_<tab> : tab é®å®æ
gf : æå¼å
æ å¤å¹¿ä¹åå½åçæä»¶ (normal模å¼)
main_<C-X><C-F> : æä»¶åèªå¨å®æ(insert模å¼)
----------------------------------------
â¼
Vimå¤æä½¿ç¨â¼
交æ¢ä¸¤ä¸ªåè¯:%s/\<\(on\|off\)\>/\=strpart("offon", 3 * ("off" == submatch(0)), 3)/gâ¼
交æ¢ä¸¤ä¸ªåè¯:vnoremap <C-X> <Esc>`.``gvP``P----------------------------------------
â¼
ætextæä»¶è½¬æ¢æhtmlæä»¶(oh,ft):runtime! syntax/2html.vim : è½¬æ¢ txt æ html
:h 2html
----------------------------------------
â¼
VIM æä¸ä¸ªå
é¨èªå¸¦ç grep å½ä»¤:grep some_keyword *.c : å¾å°ä¸ä¸ªå
å«some_keywordçcæä»¶åå表
:cn : å»ä¸ä¸ä¸ªåºç°çä½ç½®
----------------------------------------
â¼
å¼ºå¶æ æ©å±åçæä»¶çè¯æ³çè²æ¹å¼:set syntax=perlâ¼
åæ¶è¯æ³çè² (徿ç¨):set syntax offâ¼
æ¹åè²å½©ä¸»é¢ (å¨~vim/vim??/colorsä¸ç任使件):colorscheme blueâ¼
éè¿ä½¿ç¨æ¨¡å¼è¡å¼ºè¿«ä½¿ç¨ HTML è¯æ³é«äº®# vim:ft=html:
â¼
强å¶èªå¨è¯æ³å 亮(éæ åçæä»¶æ©å±)au BufRead,BufNewFile */Content.IE?/* setfiletype html----------------------------------------
:set noma (non modifiable) : 鲿¢ä¿®æ¹
:set ro (Read Only) : åªè¯»ä¿æ¤
----------------------------------------
â¼
ä¼è¯ (æå¼ä¸å æä»¶)gvim file1.c file2.c lib/lib.h lib/lib2.h : å¨"对è¯"ä¸å è½½è¿äºæä»¶
:mksession : çæä¸ä¸ªSessionæä»¶ (é»è®¤æ¯Session.vim)
:q
gvim -S Session.vim : éæ°å è½½æææä»¶
----------------------------------------
#æ è®°(tags) (跳转å°åç¨åº/彿°)
taglist.vim : 徿µè¡çæä»¶
:Tlist : æ¾ç¤ºæ è®° (彿°å表)
<C-]> : 跳转å°å
æ å¤ç彿°
----------------------------------------
â¼
å°csvæä»¶åæ ï¼ä»¥ä¾¿ä»
æ¾ç¤ºå®½è¡çå符:let width = 20:let fill=' ' | while strlen(fill) < width | let fill=fill.fill | endwhile:%s/\([^;]*\);\=/\=strpart(submatch(1).fill, 0, width)/ge:%s/\s\+$//geâ¼
é«äº®æ¾ç¤ºç¹å®çcsvå (æ¾å
¥.vimrcæä»¶)function! CSVH(x)
execute 'match Keyword /^\([^,]*,\)\{'.a:x.'}\zs[^,]*/'
execute 'normal ^'.a:x.'f,'
endfunction
command! -nargs=1 Csv :call CSVH(<args>)â¼
call with:Csv 5 : é«äº®æ¾ç¤ºç¬¬5å
----------------------------------------
â¼
æå ï¼éèæäºçæï¼ä½¿æ¥çæ´å®¹æzf} : 使ç¨å¨ä½å½ä»¤æå ä¸ä¸ªæ®µè½
v}zf : 使ç¨å¯è§æ¨¡å¼æå ä¸ä¸ªæ®µè½
zf'a : æå å°ä¸ä¸ªæ è®°ä¸
zo : æå¼æå
zc : éæ°å
³éæå
----------------------------------------
â¼
æ¾ç¤º"ä¸å¯è§å符":set list:h listchars----------------------------------------
â¼
å¦ä½å¨ä¸è¿å
¥æå
¥æ¨¡å¼çæ
åµä¸ç²è´´"æ®é模å¼çå½ä»¤":norm qqy$jq----------------------------------------
â¼
å¤çæä»¶å:h filename-modifiers : 帮å©
:w % : åå
¥å½åæä»¶
:w %:r.cfm : æ¹åæä»¶æ©å±å为 .cfm
:!echo %:p : æ¾ç¤ºå®æ´è·¯å¾åæä»¶å
:!echo %:p:h : åªæ¾ç¤ºå®æ´è·¯å¾
:!echo %:t : åªæ¾ç¤ºæä»¶å
:reg % : æ¾ç¤ºæä»¶å
<C-R>% : æå
¥æä»¶å (æå
¥æ¨¡å¼)
"%p : æå
¥æä»¶å (æ®é模å¼)
/<C-R>% : 卿æ¬ä¸æ¥æ¾æä»¶å
----------------------------------------
â¼
å é¤ï¼ä½ä¸ç ´å buffer å
容ï¼"_ä¸ºé»æ´å¯åå¨ï¼ç¸å½äºlinuxä¸ç/dev/null"_d : ä½ ä¸ç´æ³è¦çä¸è¥¿
"_dw : ä¾å¦ï¼å é¤ä¸ä¸ªåè¯
----------------------------------------
â¼
é宿´çè·¯å¾åå°åªè´´æ¿ï¼ç¨äºé®ä»¶éä»¶ç:nnoremap <F2> :let @*=expand("%:p")<cr> : unix
:nnoremap <F2> :let @*=substitute(expand("%:p"), "/", "\\", "g")<cr> : win32
----------------------------------------
â¼
éè¿ Vim ä¿®æ¹æä»¶åçç®å shell èæ¬$ vim
:r! ls *.c
:%s/\(.*\).c/mv & \1.bla
:w !sh
:q!
----------------------------------------
â¼
å¨ä¸ä¸ªææ¬é计ç®åè¯æ°g<C-G>----------------------------------------
â¼
ä½ èªå·±è®¾ç½®é«äº®æ¾ç¤ºçä¾å:syn match DoubleSpace " ":hi def DoubleSpace guibg=#e0e0e0----------------------------------------
â¼
éæ°éå产çåé¢ä¸è¡:imap ] @@@<ESC>hhkyWjl?@@@<CR>P/@@@<CR>3s : æ¤ç§å¤æçæ å°ï¼è§£éï¼ä¼å®³äººçï¼ï¼é¦å
ï¼è¾å
¥@@@ï¼ç¶åESCåå°æ®é模å¼ï¼hhæ¯å¾å·¦ç§»å¨ä¸¤ä¸ªå符ï¼å°±æ¯å°äºç¬¬ä¸ä¸ª@ä¸ï¼ç¶åkæ¯å°ä¸ä¸è¡ãy表示yankï¼æ·è´ï¼Wæ¯ææ·è´å°å¤§åè¯çç»æãjæ¯å¾ä¸ä¸è¡ï¼å°±æ¯åå°åæ¥ä¸è¡ï¼l表示å¾å³ç§»å¨ä¸ä¸ªå符ï¼ä»¥ä¾¿ä¸é¢ç?æ¥æ¾ã?æ¯å䏿¥æ¾ï¼æ¾çå
容æ¯@@@ã<CR>å车æ§è¡åï¼Pæ¯æå°å¯åå¨ä¸çå
容ï¼å³ä¸ä¸è¡çå®å
¨å
å®¹ï¼æ·è´å°@@@ä¹åï¼ç¶ååç¨/æ¥æ¾@@@ã3s表示å é¤3个å符ï¼å°±æ¯@@@ï¼ï¼å¹¶åæ¢å°æå
¥æ¨¡å¼ã
:nmap ] i@@@<ESC>hhkyWjl?@@@<CR>P/@@@<CR>3sâ¼
æ ¹æ®æä»¶ç±»åæ å°å¿«æ·é®:autocmd bufenter *.tex map <F1> :!latex %<CR>:autocmd bufenter *.tex map <F2> :!xdvi -hush %<.dvi&<CR>----------------------------------------
â¼
读å MS-Word ææ¡£ï¼éè¦æantiwordï¼ä¸ä¸ªå
è´¹çwordææ¡£é
读å¨ï¼:autocmd BufReadPre *.doc set ro:autocmd BufReadPre *.doc set hlsearch!:autocmd BufReadPost *.doc %!antiword "%"----------------------------------------
â¼
æè¡çæ¹æ³â¼
第ä¸è¡æ¯è®¾ç½®é项ï¼è®©ç³»ç»è®¤ä¸º<<<å>>>æ¯æè¡æ è®°ï¼åé¢ä¸è¡æ¾å°æ£æä¸ï¼å°±çå°æå ææäº:se filetype=help foldmethod=marker foldmarker=<<<,>>>A really big section closed with a tag <<<
--- remember folds can be nested ---
Closing tag >>>
----------------------------------------
â¼
å¦ä¸ä¸ªVimé»å®¢çJAVHvim -c ":%s%s*%Cyrnfr)fcbafbe[Oenz(Zbbyranne%|:%s)[[()])-)Ig|norm Vg?"# å¯å¨vimçæ¶åæ§è¡äºä¸ä¸ªå½ä»¤
# å
åå
¥äºPlease-sponsor-Bram-Moolenaarçrot13ç¼ç ï¼ç¶ååè§£ç
â»æ³¨ï¼ æ¬ææ¥èªç½ç»ï¼æ¬äººåªæ¯å 以æ´çåéæ°æçã
(åæå°åï¼
http://rayninfo.co.uk/vimtips.html)