下載地址1:http://www.vim.org/scripts/script_search_results.php
下載地址2:http://www.vim.org/scripts/index.php
8 #=============================================================================
9 1. 查看 key 相關(guān)信息說明的命令 :help keycodes
10
11 #=============================================================================
12 2. ctags
13 (1). 幫助手冊(cè)查看
14 :help usr_29
15
16 (2). 功能
17 ctags的功能, 只要在unix/linux環(huán)境編程過的人都知道它的歷害! 我在這也作個(gè)小
18 小介紹吧ndow=0: 對(duì)瀏覽代碼非常的方便, 可以在函數(shù), 變量之間跳來跳去等等.(注
19 意: 我這里說到的僅是小小的一部分!).
20
21 (3). 安裝
22 首先, 下載ctags安裝包, 然后解壓并安裝, 命令如下:
23 $ tar -xzvf ctags-5.6.tar.gz
24 $ cd ctags-5.6
25 $ make
26 # make install // 需要root權(quán)限
27 或:
28 $ tar -xzvf ctags-5.7.tar.gz
29 $ cd ctags-5.7
30 $ ./configure
31 # make
32 # make install
33
34
35 (4). 使用方法
36 然后去你的源碼目錄, 如果你的源碼是多層的目錄, 就去最上層的目錄, 在該目錄下
37 運(yùn)行命令: ctags -R
38 我現(xiàn)在以 vim71 的源碼目錄做演示
39 $ cd /home/nuoerll/vim71
40 $ ctags -R
41
42 此時(shí)在/home/nuoerll/vim71目錄下會(huì)生成一個(gè) tags 文件, 現(xiàn)在用vim打開
43 /home/nuoerll/vim71/src/main.c
44 $ vim /home/nuoerll/vim71/src/main.c
45
46 再在vim中運(yùn)行命令:
47 :set tags=/home/nuoerll/vim71/tags
48 該命令將tags文件加入到vim中來, 你也可以將這句話放到~/.vimrc中去, 如果你經(jīng)
49 常在這個(gè)工程編程的話.
50 對(duì)于經(jīng)常在不同工程間編程, 可以在.vimrc中設(shè)置:
51 set tags=tags; // ; 不能沒有
52 set autochdir
53
54 (5). 使用例子
55 把光標(biāo)定位到某一函數(shù)名上, 按下 Ctar + ], vim就可以自動(dòng)切換到該函數(shù)定義處!
56 要返回只需要按下Ctrl + t .
57 更多用法, 在vim命令模式輸入 :help usr_29 查看即可.
58
59
60 #=============================================================================
61 3. TagList 插件
62 (1). 幫助手冊(cè)查看
63 :help taglist.txt
64
65 (2). 功能
66 高效地瀏覽源碼, 其功能就像vc中的workpace, 那里面列出了當(dāng)前文件中的所有宏,
67 全局變量, 函數(shù)名等.
68
69 (3). 安裝
70 下載taglist壓縮包, 然后把解壓的兩個(gè)文件taglist.vim 和 taglist.txt 分別放到
71 $HOME/.vim/plugin 和 $HOME/.vim/doc 目錄中.
72
73 (4). 使用方法
74 首先請(qǐng)先在你的~/.vimrc文件中添加下面語句:
75 let Tlist_Ctags_Cmd='/bin/ctags' // 若在windows中應(yīng)寫成: let/
76 Tlist_Ctags_Cmd='ctags.exe'
77 let Tlist_Show_One_File=1
78 let Tlist_OnlyWindow=1
79 let Tlist_Use_Right_Window=0
80 let Tlist_Sort_Type='name'
81 let Tlist_Exit_OnlyWindow=1
82 let Tlist_Show_Menu=1
83 let Tlist_Max_Submenu_Items=10
84 let Tlist_Max_Tag_length=20
85 let Tlist_Use_SingleClick=0
86 let Tlist_Auto_Open=0
87 let Tlist_Close_On_Select=0
88 let Tlist_File_Fold_Auto_Close=1
89 let Tlist_GainFocus_On_ToggleOpen=0
90 let Tlist_Process_File_Always=1
91 let Tlist_WinHeight=10
92 let Tlist_WinWidth=18
93 let Tlist_Use_Horiz_Window=0
94
95
96 此時(shí)用vim打開一個(gè)c源文件試試:
97 $ vim ~/vim/src/main.c
98
99 進(jìn)入vim后用下面的命令打開taglist窗口.
100 :Tlist
101
102 為了更方便地使用, 可以在.vimrc文件中加入:
103 map <silent> <leader>tl :TlistToggle<CR>
104 這樣就可以用 ",tl" 命令進(jìn)行taglist窗口的打開和關(guān)閉之間方便切換了. // 這里
105 的","是我.vimrc設(shè)置的leader, 你也可以設(shè)置成別的, 在.vimrc中修改即可, 如我
106 的: let mapleader=","
107
108
109 #=============================================================================
110 4. WinManager 插件
111 (1). 幫助手冊(cè)查看
112 :help winmanager
113
114 (2). 功能
115 管理各個(gè)窗口, 或者說整合各個(gè)窗口.
116
117 (3). 安裝
118 下載WinManager.zip壓縮包, 解壓后把*.vim文件放到 $HOME/.vim/plugin 目錄中,
119 把*.txt文件放到 $HOME/.vim/doc 目錄中.
120
121 (4). 使用方法
122 在.vimrc中加入如下設(shè)置:
123 let g:winManagerWindowLayout='FileExplorer|BufExplorer' // 這里可以設(shè)置/
124 為多個(gè)窗口, 如'FileExplorer|BufExplorer|TagList'
125 let g:persistentBehaviour=0 // 只剩一個(gè)窗口時(shí), 退出vim.
126 let g:winManagerWidth=20
127 let g:defaultExplorer=1
128 nmap <silent> <leader>fir :FirstExplorerWindow<cr>
129 nmap <silent> <leader>bot :BottomExplorerWindow<cr>
130 nmap <silent> <leader>wm :WMToggle<cr>
131
132 (5). 使用例子
133 在終端輸入vim啟動(dòng)vim:
134 $vim
135 在正常模式下, 敲入 ",wm" 即可看到, vim的左側(cè)新建了兩個(gè)窗口:FileExplorer和
136 BufExplorer, 這樣我們即可在FileExplorer窗口很方便地對(duì)目錄進(jìn)行查看, 編輯等
137 操作; 在BufExplorer窗口中查看當(dāng)前vim已經(jīng)打開那些文件.
138
139
140 #=============================================================================
141 5. cscope
142 (1). 幫助手冊(cè)查看
143 :help if_cscop.txt
144
145 (2). 功能
146 用Cscope自己的話說 - "你可以把它當(dāng)做是超過頻的ctags", 其功能和強(qiáng)大程度可見
147 一斑吧, 關(guān)于它的介紹我就不詳細(xì)說了, 如果你安裝好了前文介紹的幫助手冊(cè).
148
149 (3). 安裝
150 如果是在linux環(huán)境中, cscope一般都會(huì)隨系統(tǒng)一起安裝了; 在windows環(huán)境中, 則需
151 要下載windows版本的(cscope.exe), 然后把它放到path環(huán)境變量所設(shè)
152 置的目錄中(如: C:/Program Files/Vim/vim72).
153
154 (4). 使用方法
155 在.vimrc中增加如下設(shè)置, 就可以利用相應(yīng)的快捷鍵進(jìn)行不同的查找了.
156 if has("cscope")
157 set cscopetag " 使支持用 Ctrl+] 和 Ctrl+t 快捷鍵在代碼間跳來跳去
158 " check cscope for definition of a symbol before checking ctags:
159 " set to 1 if you want the reverse search order.
160 set csto=1
161
162 " add any cscope database in current directory
163 if filereadable("cscope.out")
164 cs add cscope.out
165 " else add the database pointed to by environment variable
166 elseif $CSCOPE_DB !=""
167 cs add $CSCOPE_DB
168 endif
169
170 " show msg when any other cscope db added
171 set cscopeverbose
172
173 nmap <C-/>s :cs find s <C-R>=expand("<cword>")<CR><CR>
174 nmap <C-/>g :cs find g <C-R>=expand("<cword>")<CR><CR>
175 nmap <C-/>c :cs find c <C-R>=expand("<cword>")<CR><CR>
176 nmap <C-/>t :cs find t <C-R>=expand("<cword>")<CR><CR>
177 nmap <C-/>e :cs find e <C-R>=expand("<cword>")<CR><CR>
178 nmap <C-/>f :cs find f <C-R>=expand("<cfile>")<CR><CR>
179 nmap <C-/>i :cs find i ^<C-R>=expand("<cfile>")<CR>$<CR>
180 nmap <C-/>d :cs find d <C-R>=expand("<cword>")<CR><CR>
181 endif
182
183 (5). 使用例子
184 首先進(jìn)入源碼目錄, 在linux終端中輸入以下命令以創(chuàng)建cscope數(shù)據(jù)庫(kù):
185 $ find ~/work/..Project/ -name "*.h" -o -name "*.cpp" > cscope.files
186 $ cscope -bkq -i cscope.files
187 如果是在windows環(huán)境中, 則換成如下命令:
188 dir /s /b *.cpp *.h > cscope.files
189 cscope -b -q -k -i cscope.files
190
191 然后, 用vim打開一個(gè)源文件(如: vim main.cpp),
192 打開后, 第一件事就是導(dǎo)入cscope數(shù)據(jù)庫(kù)了:
193 :cs add /home/yourname/workpace/cscope.out /home/yourname/workpace
194
195 cscope數(shù)據(jù)庫(kù)導(dǎo)入成功后, 就可以利用"步驟(4)"中定義的快捷鍵進(jìn)行相關(guān)的查找,
196 瀏覽等操作了(當(dāng)然也可以直接利用相關(guān)命令, 嘿嘿).
197
198 #=============================================================================
199 5. c.vim 插件
200 (1). 幫助手冊(cè)查看
201 help csupport
202
203 (2). 功能
204 C/C++-IDE for Vim/gVim. 簡(jiǎn)單的說, 就是如果安裝配置好后, vim/gvim就是一個(gè)
205 c/c++編程的一個(gè)IDE, 其功能堪比windows里常用的vc.
206
207 (3). 安裝
208 下載cvim.zip壓縮包后, 把壓縮包c(diǎn)opy到 $HOME/.vim 目錄(windows下, copy 到
209 C:/Program Files/Vim/vimfiles)下解壓, 即可.
210 unzip cvim.zip // 解壓命令
211
212 (4). 使用方法
213 安裝好后就可以直接用了, 具體例子看"使用例子".
214
215 (5). 使用例子
216 在終端用vim打開一個(gè)c文件:
217 $vim hello.c
218 進(jìn)入vim, 敲入 "/im" 即可發(fā)現(xiàn)一個(gè)main函數(shù)框架就這樣快捷簡(jiǎn)單完美地寫出.
219
220 我比效常用的的操作有(第一列為命令, 第二列為說明, 第三列為該命令所支持的模
221 式(n:普通模式, v:可視模式, i:插入模式):
222 -- Help -----------------------------------------------
223 /hm show manual for word under the cursor(n,i)
224 /hp show plugin help (n,i)
225
226 -- Comments -------------------------------------------
227 /cl end-of-line comment (n,v,i)
228 /cj adjust end-of-line comment(s) (n,v,i)
229 /cs set end-of-line comment column (n)
230 /c* code -> comment /* */ (n,v)
231 /cc code -> comment // (n,v)
232 /co comment -> code (n,v)
233 /cfr frame comment (n,i)
234 /cfu function comment (n,i)
235 /cme method description (n,i)
236 /ccl class description (n,i)
237 /cd date (n,v,i)
238 /ct date /& time (n,v,i)
239
240 -- Statements ------------------------------------------
241 /sd do { } while (n,v,i)
242 /sfo for { } (n,v,i)
243 /sife if { } else { } (n,v,i)
244 /se else { } (n,v,i)
245 /swh while { } (n,v,i)
246 /ss switch (n,v,i)
247
248 -- Preprocessor -----------------------------------------
249 /p< #include <> (n,i)
250 /p'' #include "" (n,i)
251 /pd #define (n,i)
252 /pu #undef (n,i)
253 /pie #if #else #endif (n,v,i)
254 /pid #ifdef #else #endif (n,v,i)
255 /pin #ifndef #else #endif (n,v,i)
256 /pind #ifndef #def #endif (n,v,i)
257 /pi0 #if 0 #endif (n,v,i)
258 /pr0 remove #if 0 #endif (n,i)
259 /pe #error (n,i)
260 /pl #line (n,i)
261 /pp #pragma (n,i)
262
263 -- Idioms ------------------------------------------------
264 /if function (n,v,i)
265 /isf static function (n,v,i)
266 /im main() (n,v,i)
267 /i0 for( x=0; x<n; x+=1 ) (n,v,i)
268 /in for( x=n-1; x>=0; x-=1 ) (n,v,i)
269 /ie enum + typedef (n,i)
270 /is struct + typedef (n,i)
271 /iu union + typedef (n,i)
272 /ip printf() (n,i)
273 /isc scanf() (n,i)
274 /ica p=calloc() (n,i)
275 /ima p=malloc() (n,i)
276 /isi sizeof() (n,v,i)
277 /ias assert() (n,v)
278 /ii open input file (n,i)
279 /io open output file (n,i)
280
281 -- Snippets ------------------------------------------------
282 /nr read code snippet (n,i)
283 /nw write code snippet (n,v,i)
284 /ne edit code snippet (n,i)
285 /np pick up prototype (n,v,i)
286 /ni insert prototype(s) (n,i)
287 /nc clear prototype(s) (n,i)
288 /ns show prototype(s) (n,i)
289 /ntl edit local templates (n,i)
290 /ntg edit global templates (n,i)
291 /ntr rebuild templates (n,i)
292
293 -- C++ ----------------------------------------------------
294 /+co cout << << endl; (n,i)
295 /+c class (n,i)
296 /+cn class (using new) (n,i)
297 /+ci class implementation (n,i)
298 /+cni class (using new) implementation (n,i)
299 /+mi method implementation (n,i)
300 /+ai accessor implementation (n,i)
301
302 /+tc template class (n,i)
303 /+tcn template class (using new) (n,i)
304 /+tci template class implementation (n,i)
305 /+tcni template class (using new) impl. (n,i)
306 /+tmi template method implementation (n,i)
307 /+tai template accessor implementation (n,i)
308
309 /+tf template function (n,i)
310 /+ec error class (n,i)
311 /+tr try ... catch (n,v,i)
312 /+ca catch (n,v,i)
313 /+c. catch(...) (n,v,i)
314
315 -- Run ---------------------------------------------------
316 /rc save and compile (n,i)
317 /rl link (n,i)
318 /rr run (n,i)
319 /ra set comand line arguments (n,i)
320 /rm run make (n,i)
321 /rg cmd. line arg. for make (n,i)
322 /rp run splint (n,i)
323 /ri cmd. line arg. for splint (n,i)
324 /rk run CodeCheck (TM) (n,i)
325 /re cmd. line arg. for CodeCheck(TM) (n,i)
326 /rd run indent (n,v,i)
327 /rh hardcopy buffer (n,v,i)
328 /rs show plugin settings (n,i)
329 /rx set xterm size (n, only Linux/UNIX & GUI)
330 /ro change output destination (n,i)
331
332 關(guān)于此插件的更多功能和各種說明, 請(qǐng)查看幫助手冊(cè), help csupport.
333
334
335 #=============================================================================
336 6. omnicppcoplete 插件
337 (1). 幫助手冊(cè)查看
338 :help omnicppcoplete
339 (2). 功能
340 實(shí)現(xiàn)像vc那樣的代碼自動(dòng)補(bǔ)全功能, 比如 this-><Ctrl+X><Ctrl+O> 后, 將出現(xiàn)一個(gè)
341 提示框, 其中包含了this指針?biāo)锌梢越邮盏暮瘮?shù)或數(shù)據(jù)成員等.
342 (3). 安裝
343 把下載下來的 omnicppcoplete-0.41.zip 壓縮包c(diǎn)opy到 $HOME/.vim/(windows 復(fù)
344 制到 C:/Program Files/Vim/vimfiles ), 然后解壓, 即可.
345 (4). 使用方法
346 在.vimrc中添加以下兩條語句:
347 set nocp "不兼容vi
348 filetype plugin on "開啟文件類型識(shí)別功能
349 進(jìn)入c++源碼目錄, 在終端執(zhí)行命令 ctags -R --c++-kinds=+p --fields=+iaS
350 --extra=+q .
351 (5). 使用例子
352 編寫c++代碼時(shí), 如要自動(dòng)補(bǔ)全, 敲入 Ctrl+X Ctrl+O, 即可在出現(xiàn)的提示框中用
353 Ctrl+N 選擇符合要求的.
354
355
356 #=============================================================================
357 7. a.vim插件
358 (1). 幫助手冊(cè)查看
359 這個(gè)插件沒有幫助手冊(cè), 不過大可放心使用, 其提供的功能也不是很多, 就幾條命令
360 , 但是用起來真的是很方便.
361 (2). 功能
362 在 .h 和 .c/.cpp 文件中切換. (英文原句 "A few of quick commands to swtich
363 between source files and header files quickly.")
364 (3). 安裝
365 把下載到的a.vim插件放到 $HOME/.vim/plugin 目錄下, 即可.
366 (4). 使用方法
367 只要在vim中輸入以下命令即可完成相應(yīng)的功能:
368 :A switches to the header file corresponding to the current file being
369 edited (or vise versa)
370 :AS splits and switches
371 :AV vertical splits and switches
372 :AT new tab and switches
373 :AN cycles through matches
374 :IH switches to file under cursor
375 :IHS splits and switches
376 :IHV vertical splits and switches
377 :IHT new tab and switches
378 :IHN cycles through matches
379 <Leader>ih switches to file under cursor
380 <Leader>is switches to the alternate file of file under cursor(e.g.
381 on <foo.h> switches to foo.cpp)
382 <Leader>ihn cycles through matches
383
384 #=============================================================================
385 8. VisualMark.vim插件
386 (1). 幫助手冊(cè)查看
387 這個(gè)插件沒有幫助手冊(cè), 不過大可放心使用, 其提供的功能也不是很多, 就幾條命令
388 , 但是用起來真的是很方便.
389 (2). 功能
390 高亮?xí)?
391 (3). 安裝
392 把下載好的VisualMark.vim插件放到 $HOME/.vim/plugin 目錄下, 即可.
393 (4). 使用方法
394 只要在vim中執(zhí)行以下命令即可完成相應(yīng)的功能:
395 1. For gvim, use "Ctrl + F2" to toggle a visual mark.
396 For both vim and gvim, use "mm" to toggle a visual mark.
397 2. Use "F2" to navigate through the visual marks forward in the
398 file.
399 3. Use "Shift + F2" to navigate backwards.
400
401 #=============================================================================
402 9. Mark.vim插件
403 (1). 幫助手冊(cè)查看
404 這個(gè)插件沒有幫助手冊(cè), 不過大可放心使用, 其提供的功能也不是很多, 就幾條命
405 令, 但是用起來真的是很方便.
406
407 (2). 功能
408 這個(gè)插件與vim中自帶的'*'與'#'非常相像. 不同之處是: vim中的'*'與'#'命令只
409 能同時(shí)高亮一個(gè)同類詞組(或正則表達(dá)式的搜索結(jié)果), 而Mark.vim插件可以同時(shí)高
410 亮多個(gè).
411
412 (3). 安裝
413 把下載好的Mark.vim插件放到 $HOME/.vim/plugin 目錄中, 即可.
414
415 (4). 使用方法
416 /m mark or unmark the word under (or before) the cursor
417 /r manually input a regular expression. 用于搜索.
418 /n clear this mark (i.e. the mark under the cursor), or clear all
419 highlighted marks .
420 /* 把光標(biāo)向前切換到當(dāng)前被Mark的MarkWords中的下一個(gè)MarkWord.
421 /# 把光標(biāo)向后切換到當(dāng)前被Mark的MarkWords中的上一個(gè)MarkWord.
422 // 把光標(biāo)向前切換到所有被Mark的MarkWords中的下一個(gè)MarkWord.
423 /? 把光標(biāo)向后切換到所有被Mark的MarkWords中的上一個(gè)MarkWord.
424
425 說明: 這些命令中的 '/' 是 vim 中的 mapleader, 你也可以設(shè)置為別的: 如,
426 若要設(shè)置為 ',', 把下面這條語句加到.vimrc文件中, 即可,
427 let mapleader=","
428
429
430 #=============================================================================
431 10. code_complete.vim插件
432 (1). 幫助手冊(cè)查看
433 (2). 功能
434 函數(shù)參數(shù)提示.
435
436 (3). 安裝
437 下載code_complete.vim插件放到 C:/Program Files/Vim/vimfiles 目錄中, 即可.
438
439 (4). 使用方法
440 進(jìn)入源碼目錄, 執(zhí)行如下命令:
441 ctags -R --c-kinds=+p --fields=+S .
442
443 (5). 使用例子
444 " Usage:
445 " hotkey:
446 " "<tab>" (default value of g:completekey)
447 " Do all the jobs with this key, see
448 " example:
449 " press <tab> after function name and (
450 " foo ( <tab>
451 " becomes:
452 " foo ( /<first param>`,/<second param>` )
453 " press <tab> after code template
454 " if <tab>
455 " becomes:
456 " if( /<...>` )
457 " {
458 " /<...>`
459 " }
460
461
462 #=============================================================================
463 11. autoproto.vim
464 Using this script, typing ``(`` will result in (|), where | is the cursor
465 position and the double backticks are just marking input. Typing a
466 ``)`` will move the cursor outside the parens. This moving outside
467 works even in nested scenarios. Typing ``if(my_array['key`` results in
468 if(my_array['key|']) and ``)`` gets you if(my_array['key'])|.
469
470 The paired characters are: [, (, {, ", '; //"
471
472 If you like this script, you should also check out surround.vim
473
474
475
476
477 #=============================================================================
478 12. pyclewn
479 pyclewn在unix, windows下的安裝方法:
480 http://pyclewn.wiki.sourceforge.net/install+
481
482 下載安裝python
483 http://www.python.org/download/
484
485 python補(bǔ)丁(pywin32-212.win32-py2.6.txt)(對(duì)pyclewn)下載安裝
486 http://sourceforge.net/project/platformdownload.php?group_id=78018
487
488 下載安裝MimGW或Cywin
489
490 下載安裝pyclewn
491 http://sourceforge.net/project/showfiles.php?group_id=212808
492
493 (1). 幫助手冊(cè)查看
494 (2). 功能
495 (3). 安裝
496 (4). 使用方法
497 (5). 使用例子
498
499
500 #=============================================================================
501 13. project.vim
502 (1). 幫助手冊(cè)查看
503 :help project.txt
504
505 (2). 功能
506 組織管理工程, 方便于瀏覽, 打開, 查找文件等.
507
508 (3). 安裝
509 下載project.vim壓縮包(如: project.gz), 然后把解壓的兩個(gè)文件project.vim 和
510 project.txt 分別放到 $HOME/.vim/plugin 和 $HOME/.vim/doc 目錄中.
511
512 (4). 使用方法
513 在.vimrc中加入以下設(shè)置:
514 // 切換打開和關(guān)閉project窗口
515 nmap <silent> <Leader>P <Plug>ToggleProject
516 //插件項(xiàng)目窗口寬度. 默認(rèn)值: 24
517 let g:proj_window_width=20 //當(dāng)按空格鍵 <space> 或者單擊鼠標(biāo)左鍵/
518 <LeftMouse>時(shí)項(xiàng)目窗口寬度增加量,默認(rèn)值:100
519 let g:proj_window_increment=90
520 let g:proj_flags='i' //當(dāng)選擇打開一個(gè)文件時(shí)會(huì)在命令行顯示文件名和當(dāng)
521 前工作路徑.
522 let g:proj_flags='m' //在常規(guī)模式下開啟 |CTRL-W_o| 和
523 |CTRL-W_CTRL_O| 映射, 使得當(dāng)前緩沖區(qū)成為唯一可
524 見的緩沖區(qū), 但是項(xiàng)目窗口仍然可見.
525 let g:proj_flags='s' //開啟語法高亮.
526 let g:proj_flags='t' //用按 <space> 進(jìn)行窗口加寬.
527 let g:proj_flags='c' //設(shè)置后, 在項(xiàng)目窗口中打開文件后會(huì)自動(dòng)關(guān)閉項(xiàng)目
528 窗口.
529 //let g:proj_flags='F' //顯示浮動(dòng)項(xiàng)目窗口. 關(guān)閉窗口的自動(dòng)調(diào)整大小和窗
530 口替換.
531 let g:proj_flags='L' //自動(dòng)根據(jù)CD設(shè)置切換目錄.
532 //let g:proj_flags='n' //顯示行號(hào).
533 let g:proj_flags='S' //啟用排序.
534 let g:proj_flags='T' //子項(xiàng)目的折疊在更新時(shí)會(huì)緊跟在當(dāng)前折疊下方顯示(
535 而不是其底部).
536 let g:proj_flags='v' //設(shè)置后將, 按 /G 搜索時(shí)用 :vimgrep 取代 :grep.
537 //let g:proj_run1='!p4 edit %f' //g:proj_run1 ... g:proj_run9 用法.
538 let g:proj_run3='silent !gvim %f'
539
540 (5). 使用例子
541 1. 在源碼目錄下建立一個(gè)工程文件: exampleProject
542 $ gvim exampleProject
543
544 2. 在exampleProject文件中定入:
545 MyProject="E:/desktop_item/tmp/0virtual/nehe2/LVHM/test" CD=. flag=r
546 filter="*akefile*" {
547 Header file=. CD=. flag=r filter="*.h" {
548 }
549 Source file=. CD=. flag=r filter="*.cpp" {
550 }
551 }
552
553 3. 在光標(biāo)定位到第一行, 敲入:
554 /R
555 exampleProject文件改變, 如下:
556 MyProject="E:/desktop_item/tmp/0virtual/nehe2/LVHM/test" CD=./
557 flag=r filter="*akefile*" {
558 makefile
559 Header file=. CD=. flag=r filter="*.h" {
560 MainFrm.h
561 Resource.h
562 StdAfx.h
563 test.h
564 testDoc.h
565 testView.h
566 }
567 Source file=. CD=. flag=r filter="*.cpp" {
568 MainFrm.cpp
569 StdAfx.cpp
570 test.cpp
571 testDoc.cpp
572 testView.cpp
573 }
574 }
575
576 4. 小測(cè)一下:
577 把光標(biāo)某個(gè)文件名上, 敲下 Enter 可以看到, 對(duì)應(yīng)的文件在左邊的窗口顯示出
578 來.
579
580 5. 更多用法參考.vimrc的相關(guān)設(shè)置的說明或 help project.txt 查找?guī)椭?
581
582
583 #=============================================================================
584 14. NERD_tree.vim
585 (1). 幫助手冊(cè)查看
586 help NERD_tree
587
588 (2). 功能
589 目錄樹, 同時(shí)還可以對(duì)文件進(jìn)行打開操作等.
590
591 (3). 安裝
592 下載NERD_tree壓縮包, 然后把解壓的兩個(gè)文件NERD_tree.vim 和 NERD_tree.txt 分
593 別放到$HOME/.vim/plugin 和 $HOME/.vim/doc 目錄中.
594
595 (4). 使用方法
596
597 (5). 使用例子
598 // let loaded_nerd_tree=1 // 禁用所有與NERD_tree有關(guān)的命令
599 nmap <silent> <leader>tto :NERDTreeToggle<cr>
600 let NERDTreeIgnore=['/.vim$','/~$'] // 不顯示指定的類型的文件
601 let NERDTreeShowHidden=0 // 不顯示隱藏文件(好像只在linux環(huán)境中有效)
602 let NERDTreeSortOrder=['//$','/.cpp$','/.c$','/.h$', '*'] // 排序
603 let NERDTreeCaseSensitiveSort=0 // 不分大小寫排序
604 let NERDTreeWinSize=30
605 // let NERDTreeShowLineNumbers=1
606 let NERDTreeShowBookmarks=1
607 let NERDTreeQuitOnOpen=1 // 打開文件后, 關(guān)閉NERDTrre窗口
608 // let NERDTreeHighlightCursorline=1 // 高亮NERDTrre窗口的當(dāng)前行
609 // nmap <silent> <leader>tmk :Bookmark expand(/"<cword>/")<cr>
610
611
612 #=============================================================================
613 15. NERD_commenter.vim
614 (1). 幫助手冊(cè)查看
615 help NERD_commenter.
616
617 (2). 功能
618 源碼文檔注釋.
619
620 (3). 安裝
621 下載NERD_commenter壓縮包, 然后把解壓的兩個(gè)文件NERD_commenter.vim 和
622 NERD_commenter.txt 分別放到$HOME/.vim/plugin 和 $HOME/.vim/doc 目錄中.
623
624 (4). 使用方法
625 (5). 使用例子
626 " let NERD_java_alt_style=1
627 " Default mapping: [count],cc " 以行為單位進(jìn)行注釋.
628 " ,c<space> " comment <--> uncomment.
629 " ,cm " 以段作為單位進(jìn)行注釋.
630 " ,cs " 簡(jiǎn)潔美觀式注釋.
631 " ,cy " Same as ,cc except that the commented line(s) are yanked first.
632 " ,c$ " 注釋當(dāng)前光標(biāo)到行未的內(nèi)容.
633 " ,cA " 在行尾進(jìn)行手動(dòng)輸入注釋內(nèi)容.
634 " ,ca " 切換注釋方式(/**/ <--> //).
635 " ,cl " Same cc, 并且左對(duì)齊.
636 " ,cb " Same cc, 并且兩端對(duì)齊.
637 " ,cu " Uncomments the selected line(s).
638
639
640 #=============================================================================
641 16. sketch.vim 用鼠標(biāo)作畫
642 map <silent> <leader>ske :call ToggleSketch()<CR>
643
644
645
646
647 #=============================================================================
648 17. Calendar.vim
649 map <silent> <leader>cal :Calendar<cr>
650 map <silent> <leader>cah :CalendarH<cr>
651
652
653
654 #=============================================================================
655 18. DoxygenToolkit.vim
656 (1). 代碼文檔工具
657 let g:DoxygenToolkit_commentType = "C"
658 let g:DoxygenToolkit_briefTag_pre="@Synopsis "
659 let g:DoxygenToolkit_paramTag_pre="@Param"
660 let g:DoxygenToolkit_returnTag="@Returns "
661 let g:DoxygenToolkit_blockHeader="--------------------------------------------------------------------------"
662 let g:DoxygenToolkit_blockFooter="----------------------------------------------------------------------------"
663 let g:DoxygenToolkit_authorName="Mathias Lorente"
664 let g:DoxygenToolkit_licenseTag="My own license"
665
666
667
668 #=============================================================================
669 19. cpp.vim
670 (1). c/c++類名, 函數(shù)等高亮
671 install details
672 Make a backup copy of syntax/vim.cpp and overwrite syntax/vim.cpp with this file.
673
674
675
676 #=============================================================================
677 20. javacomplete.vim
678 (1). 幫助手冊(cè)查看
679 :help javacomplete.txt
680 (2). 功能
681 進(jìn)行java類, 包, 方法等補(bǔ)全.
682 (3). 安裝
683 1. 下載, 解壓, 把相應(yīng)的文件copy到相應(yīng)的目錄下.
684 2. 對(duì)Reflection.java進(jìn)行編譯, 編譯命令為:
685 javac -source 1.4 Reflection.java
686 3. 把編譯生成的Reflection.class文件移動(dòng)到vim的$HOME目錄下.(注意是移動(dòng), 而
687 不是復(fù)制, 最好保證系統(tǒng)中只有一個(gè)Reflection.class文件, 且在vim的
688 $HOME目錄下.)
689 4. 在.vimrc中加入:
690 setlocal completefunc=javacomplete#CompleteParamsInfo
691 autocmd FileType c set omnifunc=ccomplete#Complete
692 autocmd FileType css set omnifunc=csscomplete#CompleteCSS
693 autocmd FileType html set omnifunc=htmlcomplete#CompleteTags
694 autocmd FileType java set omnifunc=javacomplete#Complete
695 autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS
696 autocmd FileType php set omnifunc=phpcomplete#CompletePHP
697 autocmd FileType python set omnifunc=pythoncomplete#Complete
698 autocmd FileType xml set omnifunc=xmlcomplete#CompleteTags
699 (4). 使用方法
700 (5). 使用例子
701 Math.<C-X><C-O>
702
703
704
705 #=============================================================================
706 21. JumpInCode_Plus.vim
707 (1). 幫助手冊(cè)查看
708 http://www.vim.org/scripts/script.php?script_id=2862
709
710 (2). 功能
711 <leader>jc Generate tags and cscope database from current directory to :
712 CurrentDirectory/OutDB/cscope.out,tags
713 <leader>jst list existed tags full name and choose tags
714 <leader>jsc list existed cscope database full name and choose cscope.out
715
716 (3). 安裝
717 把JumpInCode_Plus.vim 放到 $VIM/vimfiles/plugin
718
719 (4). 使用方法
720 (5). 使用例子
721
722
723
724 #=============================================================================
725 22. txtbrowser.zip
726 (1). 幫助手冊(cè)查看
727 http://www.vim.org/scripts/script.php?script_id=2899
728 http://guoyoooping.blog.163.com/blog/static/1357051832009112910162389/
729 :help txtbrowser
730
731 (2). 功能
732 show the document map and syntax highlight in plain text.
733
734 (3). 安裝
735 :help txtbrowser
736 1. 請(qǐng)首先安裝taglist插件(http://www.vim.org/scripts/script.php?script_id=273),
737 我相信玩Vim的沒有幾個(gè)人沒有安裝這個(gè)插件吧.
738
739 2. 下載插件后解壓縮到目錄$HOME/.vim(或$HOME/vimfiles, $VIM/vimfiles). 然后將解壓后
740 的.ctag, 剪切到$HOME目錄下即可, 安裝完成后你的文件夾下應(yīng)該有下面的幾個(gè)文件(請(qǐng)
741 注意目錄結(jié)構(gòu)):
742 $HOME/.ctags - 用于標(biāo)題標(biāo)簽的生成.
743 $HOME/.vim/syntax/txt.vim - .txt文件的語法高亮文件.
744 $HOME/.vim/plugin/txtbrowser.vim - 瀏覽工具.
745 $HOME/.vim/doc/txtbrowser.txt - 英文幫助文檔.
746 $HOME/.vim/doc/txtbrowser.cnx - 中文幫助文檔.(別忘了打開然后執(zhí)行
747 ":helptags ."生成標(biāo)簽)
748 由于版本1.1.1之前采用老的插件名, 請(qǐng)?jiān)诎惭b前先刪除低版本插件(主要是幫助文件, 原來的
749 名字叫txt.txt和txt_cn.txt), 否則在安裝新的幫助文檔時(shí)會(huì)提示標(biāo)簽已經(jīng)存在..
750
751 3. 在你的.vimrc文件里加入下面三行, 然后重啟你的Vim:
752 syntax on
753 let tlist_txt_settings = 'txt;c:content;f:figures;t:tables'
754 au BufRead,BufNewFile *.txt setlocal ft=txt
755
756 4. 本插件所有文件以fenc=utf8發(fā)布. 簽于taglist對(duì)中文的支持有限, 你需要保證你的文
757 檔的enc值和fenc的值相等(例如, enc=cp936, fenc=cp936). 如果不等請(qǐng)將fenc的值設(shè)為
758 相應(yīng)的enc的值保(如:set fenc=cp936)存后并刷新(:TlistUpdate).
759
760 (4). 使用方法
761 :help txtbrowser
762 (5). 使用例子
763
764
765
766 #=============================================================================
767 23. FindMate.vim
768 (1). 幫助手冊(cè)查看
769 help FindMate
770 http://www.vim.org/scripts/script.php?script_id=2871
771
772 (2). 功能
773 快速查找文件
774
775 (3). 安裝
776 下載FindMate壓縮包, 然后把解壓的兩個(gè)文件FindMate.vim 和 FindMate.txt 分別放到
777 $HOME/.vim/plugin 和 $HOME/.vim/doc 目錄中.
778
779 (4). 使用方法
780 You can launch FindMate by typing:
781 ,, File_name
782 Or
783 :FindMate File_name
784 The shortcut can be redefined by using:
785 map your_shortcut <Plug>FindMate
786 In your .vimrc file
787
788 (5). 使用例子
789
790
791
792
793 #=============================================================================
794 24. ZoomWin.vim
795 (1). 幫助手冊(cè)查看
796 http://www.vim.org/scripts/script.php?script_id=508
797
798 (2). 功能
799 Press <c-w>o : the current window zooms into a full screen
800 Press <c-w>o again: the previous set of windows is restored
801
802 (3). 安裝
803 Press <c-w>o : the current window zooms into a full screen
804 Press <c-w>o again: the previous set of windows is restored
805
806 (4). 使用方法
807 (5). 使用例子
808
809
810
811 #=============================================================================
812 25. cpp_src.tar.bz2
813 tags for std c++ (STL, streams, ...) : Modified libstdc++ headers for use with ctags
814 (1). 幫助手冊(cè)查看
815 http://www.vim.org/scripts/script.php?script_id=2358
816
817 (2). 功能
818 (3). 安裝
819 install details:
820 1. unpack
821 2. run
822 $ ctags -R --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++ cpp_src
823 $ mv tags cpp # or whatever
824 3. In Vim:
825 set tags+=/my/path/to/tags/cpp
826
827 (4). 使用方法
828 (5). 使用例子
829
830
831
832
833 #=============================================================================
834 26. grep.vim
835 (1). 幫助手冊(cè)查看
836 http://www.vim.org/scripts/script.php?script_id=311
837
838 (2). 功能
839 The grep plugin integrates the grep, fgrep, egrep, and agrep tools with
840 Vim and allows you to search for a pattern in one or more files and jump
841 to them.
842
843 (3). 安裝
844 1).
845 To use this plugin, you need the grep, fgrep, egrep, agrep, find and
846 xargs utilities. These tools are present in most of the Unix installations.
847 For MS-Windows systems, you can download the GNU grep and find utilities
848 from the following sites:
849 http://gnuwin32.sourceforge.net/packages/grep.htm
850 http://gnuwin32.sourceforge.net/packages/findutils.htm
851 2).
852 把下載得到的grep.vim復(fù)制到 $HOME/plugin 目錄中.
853
854 (4). 使用方法
855 :Grep
856
857 (5). 使用例子
858
859 #=============================================================================
860 27. autocomplpop.zip
861 (1). 幫助手冊(cè)查看
862 :help acp
863 http://www.vim.org/scripts/script.php?script_id=1879
864
865 (2). 功能
866 With this plugin, your vim comes to automatically opens popup menu for
867 completions when you enter characters or move the cursor in Insert mode. It
868 won't prevent you continuing entering characters.
869
870 (3). 安裝
871 autocomplpop.zip
872 mv plugin/acp.vim $HOME/.vim/plugin/acp.vim
873 mv autoload/acp.vim $HOME/.vim/autoload/acp.vim
874 mv doc/acp.jax $HOME/.vim/doc/acp.jax
875 mv doc/acp.txt $HOME/.vim/doc/acp.txt
876
877 (4). 使用方法
878 Once this plugin is installed, auto-popup is enabled at startup by default.
879 Which completion method is used depends on the text before the cursor. The
880 default behavior is as follows:
881 kind filetype text before the cursor ~
882 Keyword * two keyword characters
883 Filename * a filename character + a path separator
884 +0 or more filename character
885 Omni ruby ".", "::" or non-word character + ":"
886 (|+ruby| required.)
887 Omni python "."(|+python| required.)
888 Omni xml "<", "</" or("<" + non-">" characters + " ")
889 Omni html/xhtml "<", "</" or("<" + non-">" characters + " ")
890 Omni css (":", ";", "{", "^", "@", or "!")
891 +0 or 1 space
892
893 (5). 使用例子
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911 #=============================================================================
912 " http://www.vim.org/scripts/script.php?script_id=1638 " SourceCodeObedience
913 " http://www.vim.org/scripts/script.php?script_id=1581 " lookupfile
914 " http://insenvim.sourceforge.net/index.php