1 ;:+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 ;:文档来源: http://www.rayninfo.co.uk/vimtips.html
3 ;:翻译参考: 没有记,请原作者见谅
4 ;:文档日期: 2006-10-13 11:19:04
5
6 ;:作 者: li3
7 ;:生成工具: 2Html.vim
8 ;:blog.asp?name=li3
9 ;:+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
10
11 ;:--------------------------------------------------------------------------------
12
13
14 ;:--------------------------------------------------------------------------------
15 /joe/e
16 /joe/e+1
17 /joe/s-2
18 /joe/+3
19 /^joe.*fred.*bill/
20 /^[A-J]\+/
21 /begin\_.*end
22 /fred\_s*joe/i
23 /fred\|joe
24 /.*fred\&.*joe
25 /\<fred\>/i
26 /\<\d\d\d\d\>
27 /\D\d\d\d\d\D
28 /\<\d\{4}\>
29 /\([^0-9]\|^\)%.*%
30
31 /^\n\{3}
32
33 /\(fred\).*\(joe\).*\2.*\1
34
35 /^\([^,]*,\)\{8}
36
37 :vmap // y/<C-R>"<CR>
38 :vmap <silent> // y/<C-R>=escape(@",'\\/.*$^~[]')<CR><CR>
39
40 /<\zs[^>]*\ze>
41
42 /<\@<=[^>]*>\@=
43 /<\@<=\_[^>]*>\@=
44
45 /<!--\_p\{-}-->
46 /fred\_s*joe/i
47 /bugs\(\_.\)*bunny
48 :h \_
49
50 :nmap gx yiw/^\(sub\<bar>function\)\s\+<C-R>"<CR>
51
52 :bufdo /searchstr/
53
54 :bufdo %s/searchstr/&/gic
55
56 ?http://www.vim.org/
57
58 /\c\v([^aeiou]&\a){4}
59 ;:-----------------------------------------------------------------------------
60
61 :%s/fred/joe/igc
62 :%s/\r//g
63
64 :%s/\r/\r/g
65 :%s= *$==
66 :%s= \+$==
67 :%s#\s*\r\?$##
68 :%s#\s*\r*$##
69
70 :%s/^\n\{3}//
71 :%s/^\n\+/\r/
72 :%s#<[^>]\+>##g
73 :%s#<\_.\{-1,}>##g
74
75 :'a,'bg/fred/s/dick/joe/igc
76 ;# 译释:''a,''b指定一个范围:mark a ~ mark b
77 ;# g//用一个正则表达式指出了进行操作的行必须可以被fred匹配
78 ;# 看后面,g//是一个全局显示命令
79 ;# s/dick/joe/igc则对于这些满足条件的行进行替换
80
81 :%s= [^ ]\+$=&&=
82 :%s= \f\+$=&&=
83 :%s= \S\+$=&&
84
85 :s/\(.*\):\(.*\)/\2: \1/
86 :%s/^\(.*\)\n\1$/\1/
87
88 :%s/^.\{-}pdf/new.pdf/
89
90 :%s#\<[zy]\?tbl_[a-z_]\+\>#\L&#gc
91
92 :%s/<!--\_.\{-}-->//
93 :help /\{-}
94
95 :s/fred/<c-r>a/g
96 :s/fred/<c-r>asome_text<c-r>s/g
97 :s/fred/\=@a/g
98
99 :%s/\f\+\.gif\>/\r&\r/g | v/\.gif$/d| %s/gif/jpg/
100 :%s/a/but/gie|:update|:next
101
102 :%s/suck\|buck/loopy/gc
103
104 :s/__date__/\=strftime("%c")/
105
106 :%s:\(\(\w\+\s\+\)\{2}\)str1:\1str2:
107
108 :%s:\(\w\+\)\(.*\s\+\)\(\w\+\)$:\3\2\1:
109
110 :redir @*|sil exec 'g#<\(input\|select\|textarea\|/\=form\)\>#p'|redir END
111 :nmap ,z :redir @*<Bar>sil exec 'g@<\(input\<Bar>select\<Bar>textarea\<Bar>/\=form\)\>@p'<Bar>redir END<CR>
112
113 :%s/\d\+/\=(submatch(0)-3)/
114
115 :g/loc\|function/s/\d/\=submatch(0)+6/
116
117 :%s#txtdev\zs\d#\=submatch(0)+1#g
118 :h /\zs ;查看帮助
119
120 :%s/\(gg\)\@<=\d\+/\=submatch(0)+6/
121 :h zero-width ;查看帮助
122
123 :let i=10 | 'a,'bg/Abc/s/yy/\=i/ |let i=i+1 ;# 将yy转换成10,11,12等等
124
125 :let i=10 | 'a,'bg/Abc/s/xx\zsyy\ze/\=i/ |let i=i+1 # 将xxyy 转换成 xx11,xx12,xx13
126
127 :%s/"\([^.]\+\).*\zsxx/\1/
128
129 :nmap <leader>z :%s#\<<c-r>=expand("<cword>")<cr>\>#
130
131 :vmap <leader>z :<C-U>%s/\<<c-r>*\>/
132 ;:-----------------------------------------------------------------------------
133
134
135 :%s,\(all/.*\)\@<=/,_,g
136
137 :s#all/\zs.*#\=substitute(submatch(0), '/', '_', 'g')#
138 :s#all/#&^M#|s#/#_#g|-j! ;" 查找断行,并合并为一行
139
140 :%s/.*/\='cp '.submatch(0).' all/'.substitute(submatch(0),'/','_','g')/
141 ;:-----------------------------------------------------------------------------
142
143 :g/gladiolli/#
144 :g/fred.*joe.*dick/
145 :g/\<fred\>/
146 :g/^\s*$/d
147 :g!/^dd/d
148 :v/^dd/d
149 :g/fred/,/joe/d
150 :g/-------/.-10,.d
151 :g/{/ ,/}/- s/\n\+/\r/g
152 :v/\S/d
153 :v/./,/./-j
154 :g/^$/,/./-j
155 :g/<input\|<form/p
156 :g/^/put_
157 :g/^/m0
158 :'a,'bg/^/m'b
159 :g/^/t.
160 :g/fred/t$
161 :g/stage/t'a
162 :g/\(^I[^^I]*\)\{80}/d
163
164 :g/^/ if line('.')%2|s/^/zz /
165
166
167 :'a,'bg/somestr/co/otherstr/
168 :'a,'bg/str1/s/str1/&&&/|mo/str2/ ;" 范围同上,进行替换
169 :%norm jdd
170
171 :.,$g/^\d/exe "norm! \<c-a>"
172 :'a,'bg/\d\+/norm! ^A
173
174
175 :g/fred/y A
176 :g/fred/y A | :let @*=@a
177 :let @a=''|g/Barratt/y A |:let @*=@a
178 :'a,'b g/^Error/ . w >> errors.txt ;" 将查找内容放入一个文件 (文件必须存在)
179
180 :g/./yank|put|-1s/'/"/g|s/.*/Print '&'/
181
182 :g/^MARK$/r tmp.ex | -d
183
184 :g/<pattern>/z#.5
185 :g/<pattern>/z#.5|echo "=========="
186
187 :g/|/norm 2f|r*
188
189 :nmap <F3> :redir @a<CR>:g//<CR>:redir END<CR>:new<CR>:put! a<CR><CR>
190 ;:-----------------------------------------------------------------------------
191
192 :'a,'bg/fred/s/joe/susan/gic
193 :g/fred/,/joe/s/fred/joe/gic
194 ;:-----------------------------------------------------------------------------
195
196 :/fred/;/joe/-2,/sid/+3s/sally/alley/gIC
197 ;:-----------------------------------------------------------------------------
198
199
200 :g/^/exe ".w ".line(".").".txt"
201 ;:-----------------------------------------------------------------------------
202
203 ;:-----------------------------------------------------------------------------
204 * # g* g#
205 %
206 .
207 @:
208 matchit.vim
209 <C-N><C-P>
210 <C-X><C-L>
211 /<C-R><C-W>
212 /<C-R><C-A>
213 :set ignorecase
214 :syntax on
215 :h regexp<C-D>
216
217 ;:-----------------------------------------------------------------------------
218
219 :nmap ,s :source $VIM/_vimrc
220 :nmap ,v :e $VIM/_vimrc
221 ;:-----------------------------------------------------------------------------
222
223 :vmap sb "zdi<C-R>z<ESC>
224 :vmap st "zdi<?= <C-R>z ?><ESC>
225 ;:-----------------------------------------------------------------------------
226
227 vim -p fred.php joe.php
228 :tabe fred.php
229 :tab ball
230
231 :nnoremap gf <C-W>gf
232 :cab e tabe
233
234 ;:-----------------------------------------------------------------------------
235
236 :e .
237 :Exp(lore)
238 :Sex(plore)
239 :browse e
240 :ls
241 :cd ..
242 :args
243 :args *.php
244 :lcd %:p:h
245 :autocmd BufEnter * lcd %:p:h
246 ;:-----------------------------------------------------------------------------
247
248
249 \be
250 \bs
251 ;:-----------------------------------------------------------------------------
252
253 guu
254 gUU
255 Vu
256 VU
257 g~~
258 vEU
259 vE~
260 ggguG
261
262 vmap ,c :s/\<\(.\)\(\k*\)\>/\u\1\L\2/g<CR>
263 :%s/[.!?]\_s\+\a/\U&\E/g
264 ;:-----------------------------------------------------------------------------
265 gf
266 :nnoremap gF :view <cfile><cr>
267 ga
268 ggVGg?
269 ggg?G
270 :8 | normal VGg?
271 :normal 10GVGg?
272 <C-A>,<C-X>
273
274 <C-R>=5*5
275 ;:-----------------------------------------------------------------------------
276
277 :h 42
278 :h holy-grail
279 :h!
280 ;:-----------------------------------------------------------------------------
281
282 '.
283 `.
284 g;
285 g,
286 :changes :打出改变表
287 :h changelist
288 <C-O>
289 <C-I>
290 :ju(mps)
291 :help jump-motions
292 :history
293 :his c
294 :his s
295 q/
296 q:
297 :<C-F>
298 ;:-----------------------------------------------------------------------------
299
300 :map <f7> :'a,'bw! c:/aaa/x
301 :map <f8> :r c:/aaa/x
302 :map <f11> :.w! c:/aaa/xr<CR>
303 :map <f12> :r c:/aaa/xr<CR>
304 :ab php
305 :map ,
306
307 set wak=no
308
309 <CR>
310 <ESC>
311 <LEADER>
312 <BAR>
313 <BACKSPACE>
314 <SILENT>
315 #显示自定义的 RGB 颜色显示当前光标下的字符串 例如 #445588
316 :nmap <leader>c :hi Normal guibg=#<c-r>=expand("<cword>")<cr><cr>
317 :map <f2> /price only\\|versus/ :在map中需要用反斜线 \
318 ;:-----------------------------------------------------------------------------
319
320 iab phpdb exit("<hr>Debug <C-R>a ");
321 ;:-----------------------------------------------------------------------------
322
323 :let @m=":'a,'bs/"
324 :let @s=":%!sort -u"
325 ;:-----------------------------------------------------------------------------
326
327 :reg
328 :reg a
329
330 :let @y='yy@"'
331 qqq
332 ;:-----------------------------------------------------------------------------
333
334
335 yy@"
336 u@.
337 ;:-----------------------------------------------------------------------------
338
339 :r!ls.exe
340 !!date
341
342 :%!sort -u
343 :'a,'b!sort -u
344 !1} sort -u
345 :g/^$/;,/^$/-1!sort
346 ;:-----------------------------------------------------------------------------
347
348 :bn
349 :bp
350 :wn
351 :wp
352 :bd
353 :bun
354 :badd file.c
355 :b 3
356 :b main
357 :sav php.html
358 :sav! %<.bak
359 :sav! %:r.cfm
360 :sav %:s/fred/joe/
361 :sav %:s/fred/joe/:r.bak2
362 :!mv % %:r.bak
363 :help filename-modifiers
364 :e!
365 :w c:/aaa/%
366 :e #
367 :rew
368 :brew
369 :sp fred.txt
370 :sball,:sb
371 :scrollbind
372 :map <F5> :ls<CR>:e #
373 :set hidden
374 ;:-----------------------------------------------------------------------------
375
376 map <C-J> <C-W>j<C-W>_
377 map <C-K> <C-W>k<C-W>_
378 ;:-----------------------------------------------------------------------------
379
380 qq
381 ..
382 q
383 @q
384 @@
385 5@@
386
387 "qp
388 <ctrl-R>q
389
390 "qdd
391 @q
392
393
394 qq:s/ to/ from/g^Mq
395
396 V}
397
398 :'<,'>
399
400 :'<,'>norm @q
401 ;:-----------------------------------------------------------------------------
402
403 nnoremap ] @q:w!<bar>bd
404 ;:-----------------------------------------------------------------------------
405
406
407 v
408 V
409 <C-V>
410 gv
411 o
412 "*y
413 V%
414 V}J
415 V}gJ
416 ;:-----------------------------------------------------------------------------
417
418 0<c-v>10j2ld
419 ;:-----------------------------------------------------------------------------
420
421
422 <C-V>,然后通过移动命令选择列 (win32 <C-Q>)
423 然后执行 c,d,y,r 等命令
424 ;:-----------------------------------------------------------------------------
425
426 复制第一个块: ctrl-v move "ay
427 复制第二个块: ctrl-v move cctrl-o "aP <esc>
428 ;:-----------------------------------------------------------------------------
429
430 :set incsearch
431 :set wildignore=*.o,*.obj,*.bak,*.exe
432 :set shiftwidth=3
433 :set vb t_vb=".
434 :set browsedir=buffer
435
436
437
438
439 ;:-----------------------------------------------------------------------------
440
441 :nmap ,f :update<CR>:silent !start c:\progra~1\intern~1\iexplore.exe file://%:p<CR>
442 :nmap ,i :update<CR>: !start c:\progra~1\intern~1\iexplore.exe <cWORD><CR>
443 ;:-----------------------------------------------------------------------------
444
445 cmap ,r :Nread ftp://209.51.134.122/public_html/index.html
446 cmap ,w :Nwrite ftp://209.51.134.122/public_html/index.html
447 gvim ftp://www.somedomain.com/index.html # 使用 netrw.vim
448 ;:-----------------------------------------------------------------------------
449
450
451 "a5yy
452 10j
453 "A5yy
454 ;:-----------------------------------------------------------------------------
455 [I
456 ;:-----------------------------------------------------------------------------
457
458 :'a,'b>>
459
460 :vnoremap < <gv
461
462
463
464
465 :vnoremap > >gv
466
467 >i{
468 >a{
469
470 >% and <%
471 ;:-----------------------------------------------------------------------------
472
473 :redir @*
474 :redir END
475 :redir >> out.txt
476
477 "*yy
478 "*p
479
480 :'a,'by* |