经典vim插件功能说明、安装方法和使用方法介绍

2023-11-08

  1 #=============================================================================
  2    8 #=============================================================================
  9 1. 查看 key 相关信息说明的命令  :help keycodes
10
11 #=============================================================================
12 2. ctags
13 (1). 帮助手册查看
14     :help usr_29
15
16 (2). 功能
17     ctags的功能, 只要在unix/linux环境编程过的人都知道它的历害! 我在这也作个小
18     小介绍吧ndow=0: 对浏览代码非常的方便, 可以在函数, 变量之间跳来跳去等等.(注
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权限
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     运行命令: ctags -R
38     我现在以 vim71 的源码目录做演示
39     $ cd /home/nuoerll/vim71
40     $ ctags -R
41
42     此时在/home/nuoerll/vim71目录下会生成一个 tags 文件, 现在用vim打开
43     /home/nuoerll/vim71/src/main.c
44     $ vim /home/nuoerll/vim71/src/main.c
45
46     再在vim中运行命令:
47     :set tags=/home/nuoerll/vim71/tags
48     该命令将tags文件加入到vim中来, 你也可以将这句话放到~/.vimrc中去, 如果你经
49     常在这个工程编程的话.
50     对于经常在不同工程间编程, 可以在.vimrc中设置:
51         set tags=tags;    // ; 不能没有
52         set autochdir
53
54 (5). 使用例子
55     把光标定位到某一函数名上, 按下 Ctar + ], vim就可以自动切换到该函数定义处!
56     要返回只需要按下Ctrl + t .
57     更多用法, 在vim命令模式输入 :help usr_29 查看即可.
58
59
60 #=============================================================================
61 3. TagList 插件
62 (1). 帮助手册查看
63     :help taglist.txt
64
65 (2). 功能
66     高效地浏览源码, 其功能就像vc中的workpace, 那里面列出了当前文件中的所有宏,
67     全局变量, 函数名等.
68
69 (3). 安装
70     下载taglist压缩包, 然后把解压的两个文件taglist.vim 和 taglist.txt 分别放到
71     $HOME/.vim/plugin 和 $HOME/.vim/doc 目录中.
72
73 (4). 使用方法
74     首先请先在你的~/.vimrc文件中添加下面语句:
75         let Tlist_Ctags_Cmd='/bin/ctags'   // 若在windows中应写成: 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     此时用vim打开一个c源文件试试:
97     $ vim ~/vim/src/main.c
98
99     进入vim后用下面的命令打开taglist窗口.
100     :Tlist
101
102     为了更方便地使用, 可以在.vimrc文件中加入:
103         map tl :TlistToggle
104     这样就可以用 " ,tl" 命令进行taglist窗口的打开和关闭之间方便切换了. // 这里
105     的" ,"是我.vimrc设置的leader, 你也可以设置成别的, 在.vimrc中修改即可, 如我
106     的: let mapleader=" ,"
107
108
109 #=============================================================================
110 4. WinManager 插件
111 (1). 帮助手册查看
112     :help winmanager
113
114 (2). 功能
115     管理各个窗口, 或者说整合各个窗口.
116
117 (3). 安装
118     下载WinManager.zip压缩包, 解压后把*.vim文件放到 $HOME/.vim/plugin 目录中,
119     把*.txt文件放到 $HOME/.vim/doc 目录中.
120
121 (4). 使用方法
122     在.vimrc中加入如下设置:
123     let g:winManagerWindowLayout=' FileExplorer|BufExplorer'  // 这里可以设置/
124     为多个窗口, 如' FileExplorer|BufExplorer|TagList'
125     let g:persistentBehaviour=0             // 只剩一个窗口时, 退出vim.
126     let g:winManagerWidth=20
127     let g:defaultExplorer=1
128     nmap fir :FirstExplorerWindow
129     nmap bot :BottomExplorerWindow
130     nmap wm :WMToggle
131
132 (5). 使用例子
133     在终端输入vim启动vim:
134     $vim
135     在正常模式下, 敲入 " ,wm" 即可看到, vim的左侧新建了两个窗口:FileExplorer和
136     BufExplorer, 这样我们即可在FileExplorer窗口很方便地对目录进行查看, 编辑等
137     操作; 在BufExplorer窗口中查看当前vim已经打开那些文件.
138
139
140 #=============================================================================
141 5. cscope
142 (1). 帮助手册查看
143     :help if_cscop.txt
144
145 (2). 功能
146     用Cscope自己的话说 - " 你可以把它当做是超过频的ctags", 其功能和强大程度可见
147     一斑吧, 关于它的介绍我就不详细说了, 如果你安装好了前文介绍的帮助手册.
148
149 (3). 安装
150     如果是在linux环境中, cscope一般都会随系统一起安装了; 在windows环境中, 则需
151     要下载windows版本的(cscope.exe), 然后把它放到path环境变量所设
152     置的目录中(如: C:/Program Files/Vim/vim72).
153
154 (4). 使用方法
155     在.vimrc中增加如下设置, 就可以利用相应的快捷键进行不同的查找了.
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 s :cs find s =expand(" ")
174             nmap g :cs find g =expand(" ")
175             nmap c :cs find c =expand(" ")
176             nmap t :cs find t =expand(" ")
177             nmap e :cs find e =expand(" ")
178             nmap f :cs find f =expand(" ")
179             nmap i :cs find i ^ =expand(" ") $
180             nmap d :cs find d =expand(" ")
181         endif
182
183 (5). 使用例子
184     首先进入源码目录, 在linux终端中输入以下命令以创建cscope数据库:
185         $ find ~/work/..Project/ -name " *.h" -o -name " *.cpp" > cscope.files
186         $ cscope -bkq -i cscope.files
187     如果是在windows环境中, 则换成如下命令:
188         dir /s /b *.cpp *.h > cscope.files
189         cscope -b -q -k -i cscope.files
190
191     然后, 用vim打开一个源文件(如: vim main.cpp),
192     打开后, 第一件事就是导入cscope数据库了:
193         :cs add /home/yourname/workpace/cscope.out /home/yourname/workpace
194
195     cscope数据库导入成功后, 就可以利用" 步骤(4)"中定义的快捷键进行相关的查找,
196     浏览等操作了(当然也可以直接利用相关命令, 嘿嘿).
197
198 #=============================================================================
199 5. c.vim 插件
200 (1). 帮助手册查看
201     help csupport
202
203 (2). 功能
204     C/C++-IDE for Vim/gVim. 简单的说, 就是如果安装配置好后, vim/gvim就是一个
205     c/c++编程的一个IDE, 其功能堪比windows里常用的vc.
206
207 (3). 安装
208     下载cvim.zip压缩包后, 把压缩包copy到 $HOME/.vim 目录(windows下, copy 到
209             C:/Program Files/Vim/vimfiles)下解压, 即可.
210         unzip cvim.zip    // 解压命令
211
212 (4). 使用方法
213     安装好后就可以直接用了, 具体例子看" 使用例子".
214
215 (5). 使用例子
216     在终端用vim打开一个c文件:
217         $vim hello.c
218     进入vim, 敲入 " /im" 即可发现一个main函数框架就这样快捷简单完美地写出.    
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 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     关于此插件的更多功能和各种说明, 请查看帮助手册, help csupport.
333
334
335 #=============================================================================
336 6. omnicppcoplete 插件
337 (1). 帮助手册查看
338     :help omnicppcoplete
339 (2). 功能
340     实现像vc那样的代码自动补全功能, 比如 this-> 后, 将出现一个
341     提示框, 其中包含了this指针所有可以接收的函数或数据成员等.
342 (3). 安装
343     把下载下来的 omnicppcoplete-0.41.zip 压缩包copy到 $HOME/.vim/ (windows 复
344             制到 C:/Program Files/Vim/vimfiles ), 然后解压, 即可.
345 (4). 使用方法
346     在.vimrc中添加以下两条语句:
347         set nocp   " 不兼容vi
348         filetype plugin on   "开启文件类型识别功能
349     进入c++源码目录, 在终端执行命令 ctags -R --c++-kinds=+p --fields=+iaS
350     --extra=+q .
351 (5). 使用例子
352     编写c++代码时, 如要自动补全, 敲入 Ctrl+X Ctrl+O, 即可在出现的提示框中用
353     Ctrl+N 选择符合要求的.
354
355
356 #=============================================================================
357 7. a.vim插件
358 (1). 帮助手册查看
359     这个插件没有帮助手册, 不过大可放心使用, 其提供的功能也不是很多, 就几条命令
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中输入以下命令即可完成相应的功能:
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         ih switches to file under cursor
380         is switches to the alternate file of file under cursor (e.g.
381                 on  switches to foo.cpp)
382         ihn cycles through matches
383
384 #=============================================================================
385 8. VisualMark.vim插件
386 (1). 帮助手册查看
387     这个插件没有帮助手册, 不过大可放心使用, 其提供的功能也不是很多, 就几条命令
388     , 但是用起来真的是很方便.
389 (2). 功能
390     高亮书签.
391 (3). 安装
392     把下载好的VisualMark.vim插件放到 $HOME/.vim/plugin 目录下, 即可.
393 (4). 使用方法
394     只要在vim中执行以下命令即可完成相应的功能:
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). 帮助手册查看
404      这个插件没有帮助手册, 不过大可放心使用, 其提供的功能也不是很多, 就几条命
405      令, 但是用起来真的是很方便.
406
407 (2). 功能
408      这个插件与vim中自带的' *'与' #'非常相像. 不同之处是: vim中的' *'与' #'命令只
409      能同时高亮一个同类词组(或正则表达式的搜索结果), 而Mark.vim插件可以同时高
410      亮多个.
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     /*      把光标向前切换到当前被Mark的MarkWords中的下一个MarkWord.
421     /#      把光标向后切换到当前被Mark的MarkWords中的上一个MarkWord.
422     //      把光标向前切换到所有被Mark的MarkWords中的下一个MarkWord.
423     /?      把光标向后切换到所有被Mark的MarkWords中的上一个MarkWord.
424
425         说明: 这些命令中的 '/' 是 vim 中的 mapleader, 你也可以设置为别的: 如,
426         若要设置为 ' ,', 把下面这条语句加到.vimrc文件中, 即可,
427             let mapleader=" ,"
428
429
430 #=============================================================================
431 10. code_complete.vim插件
432 (1). 帮助手册查看
433 (2). 功能
434      函数参数提示.
435
436 (3). 安装
437      下载code_complete.vim插件放到 C:/Program Files/Vim/vimfiles 目录中, 即可.
438
439 (4). 使用方法
440      进入源码目录, 执行如下命令:
441      ctags -R --c-kinds=+p --fields=+S .
442
443 (5). 使用例子
444 " Usage:
445 "           hotkey:
446 " " " (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 ( / `,/ ` )
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补丁(pywin32-212.win32-py2.6.txt)(对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). 帮助手册查看
494 (2). 功能
495 (3). 安装
496 (4). 使用方法
497 (5). 使用例子
498
499
500 #=============================================================================
501 13. project.vim
502 (1). 帮助手册查看
503     :help project.txt
504
505 (2). 功能
506     组织管理工程, 方便于浏览, 打开, 查找文件等.
507
508 (3). 安装
509     下载project.vim压缩包(如: project.gz), 然后把解压的两个文件project.vim 和
510     project.txt 分别放到 $HOME/.vim/plugin 和 $HOME/.vim/doc 目录中.
511
512 (4). 使用方法
513     在.vimrc中加入以下设置:
514         // 切换打开和关闭project窗口
515         nmap P ToggleProject
516         //插件项目窗口宽度.    默认值: 24
517         let g:proj_window_width=20 //当按空格键 或者单击鼠标左键/
518                                 时项目窗口宽度增加量,默认值:100
519         let g:proj_window_increment=90
520         let g:proj_flags=' i'    //当选择打开一个文件时会在命令行显示文件名和当
521                                 前工作路径.
522         let g:proj_flags=' m'    //在常规模式下开启 |CTRL-W_o| 和
523                                 |CTRL-W_CTRL_O| 映射, 使得当前缓冲区成为唯一可
524                                 见的缓冲区, 但是项目窗口仍然可见.
525         let g:proj_flags=' s'    //开启语法高亮.
526         let g:proj_flags=' t'    //用按 进行窗口加宽.
527         let g:proj_flags=' c'    //设置后, 在项目窗口中打开文件后会自动关闭项目
528                                 窗口.
529         //let g:proj_flags=' F'   //显示浮动项目窗口. 关闭窗口的自动调整大小和窗
530                                 口替换.
531         let g:proj_flags=' L'    //自动根据CD设置切换目录.
532         //let g:proj_flags=' n'    //显示行号.
533         let g:proj_flags=' S'    //启用排序.
534         let g:proj_flags=' T'    //子项目的折叠在更新时会紧跟在当前折叠下方显示(
535                                 而不是其底部).
536         let g:proj_flags=' v'    //设置后将, 按 /G 搜索时用 :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. 在源码目录下建立一个工程文件: 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. 在光标定位到第一行, 敲入:
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. 小测一下:
577         把光标某个文件名上, 敲下 Enter 可以看到, 对应的文件在左边的窗口显示出
578         来.
579
580     5. 更多用法参考.vimrc的相关设置的说明或 help project.txt 查找帮助.
581
582
583 #=============================================================================
584 14. NERD_tree.vim
585 (1). 帮助手册查看
586     help NERD_tree
587
588 (2). 功能
589     目录树, 同时还可以对文件进行打开操作等.
590
591 (3). 安装
592     下载NERD_tree压缩包, 然后把解压的两个文件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有关的命令
599     nmap tto :NERDTreeToggle
600     let NERDTreeIgnore=['/.vim$' , '/~$']    // 不显示指定的类型的文件
601     let NERDTreeShowHidden=0    // 不显示隐藏文件(好像只在linux环境中有效)
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    // 打开文件后, 关闭NERDTrre窗口
608     // let NERDTreeHighlightCursorline=1     // 高亮NERDTrre窗口的当前行
609     // nmap tmk :Bookmark expand(/" /")
610
611
612 #=============================================================================
613 15. NERD_commenter.vim
614 (1). 帮助手册查看
615     help NERD_commenter.
616
617 (2). 功能
618     源码文档注释.
619
620 (3). 安装
621     下载NERD_commenter压缩包, 然后把解压的两个文件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   " 以行为单位进行注释.
628     " ,c      " comment <--> uncomment.
629     " ,cm           " 以段作为单位进行注释.
630     " ,cs           " 简洁美观式注释.
631     " ,cy           " Same as ,cc except that the commented line(s) are yanked first.
632     " ,c$           " 注释当前光标到行未的内容.
633     " ,cA           " 在行尾进行手动输入注释内容.
634     " ,ca           " 切换注释方式(/**/ <--> //).
635     " ,cl           " Same cc, 并且左对齐.
636     " ,cb           " Same cc, 并且两端对齐.
637     " ,cu           " Uncomments the selected line(s).
638
639
640 #=============================================================================
641 16. sketch.vim   用鼠标作画
642 map ske :call ToggleSketch()
643
644
645
646
647 #=============================================================================
648 17. Calendar.vim
649 map cal :Calendar
650 map cah :CalendarH
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++类名, 函数等高亮
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). 帮助手册查看
679     :help javacomplete.txt
680 (2). 功能
681     进行java类, 包, 方法等补全.
682 (3). 安装
683     1. 下载, 解压, 把相应的文件copy到相应的目录下.
684     2. 对Reflection.java进行编译, 编译命令为:
685         javac -source 1.4 Reflection.java
686     3. 把编译生成的Reflection.class文件移动到vim的$HOME目录下.(注意是移动, 而
687             不是复制, 最好保证系统中只有一个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.
702
703
704
705 #=============================================================================
706 21. JumpInCode_Plus.vim
707 (1). 帮助手册查看
708 http://www.vim.org/scripts/script.php?script_id=2862
709
710 (2). 功能
711     jc  Generate tags and cscope database from current directory to :
712                    CurrentDirectory/OutDB/cscope.out,tags
713     jst       list existed tags full name and choose tags
714     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). 帮助手册查看
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. 请首先安装taglist插件 ( http://www.vim.org/scripts/script.php?script_id=273),
737     我相信玩Vim的没有几个人没有安装这个插件吧.
738
739     2. 下载插件后解压缩到目录$HOME/.vim(或$HOME/vimfiles, $VIM/vimfiles). 然后将解压后
740     的.ctag, 剪切到$HOME目录下即可, 安装完成后你的文件夹下应该有下面的几个文件(请
741     注意目录结构):
742         $HOME/.ctags - 用于标题标签的生成.
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 - 中文帮助文档. (别忘了打开然后执行
747                           ":helptags ."生成标签)
748     由于版本1.1.1之前采用老的插件名, 请在安装前先删除低版本插件(主要是帮助文件, 原来的
749     名字叫txt.txt和txt_cn.txt), 否则在安装新的帮助文档时会提示标签已经存在..
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发布. 签于taglist对中文的支持有限, 你需要保证你的文
757     档的enc值和fenc的值相等(例如, enc=cp936, fenc=cp936). 如果不等请将fenc的值设为
758     相应的enc的值保(如:set fenc=cp936)存后并刷新(:TlistUpdate).
759
760 (4). 使用方法
761     :help txtbrowser
762 (5). 使用例子
763
764
765
766 #=============================================================================
767 23.  FindMate.vim
768 (1). 帮助手册查看
769     help FindMate
770 http://www.vim.org/scripts/script.php?script_id=2871
771
772 (2). 功能
773     快速查找文件
774
775 (3). 安装
776     下载FindMate压缩包, 然后把解压的两个文件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   FindMate
786         In your .vimrc file
787
788 (5). 使用例子
789
790
791
792
793 #=============================================================================
794 24. ZoomWin.vim
795 (1). 帮助手册查看
796 http://www.vim.org/scripts/script.php?script_id=508
797
798 (2). 功能
799     Press o : the current window zooms into a full screen
800     Press o again: the previous set of windows is restored
801
802 (3). 安装
803     Press o : the current window zooms into a full screen
804     Press 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). 帮助手册查看
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). 帮助手册查看
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复制到 $HOME/plugin 目录中.
853
854 (4). 使用方法
855     :Grep
856
857 (5). 使用例子
858
859 #=============================================================================
860 27. autocomplpop.zip
861 (1). 帮助手册查看
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). 使用例子

 

转载自: http://blog.csdn.net/tge7618291

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

经典vim插件功能说明、安装方法和使用方法介绍 的相关文章

  • 虚拟内存澄清——大连续内存的分配

    我有一个应用程序 我必须在 Windows 上分配 使用运算符 new 相当大的内存空间 数百 MB 该应用程序是 32 位 我们现在不使用 64 位 即使在 64 位系统上也是如此 我启用了 LARGEADDRESSAWARE 链接器选项
  • 第三方库应该放在哪里?

    我为一个相当规模的 C 项目 http github com nickgammon mushclient具有许多依赖关系 问题是 该项目包含其所有依赖项的源代码 例如 pcre zlib 等 我想将项目精简为与程序本身相关的内容 是否有一些
  • 如何在Windows 7中使用批处理脚本获取本地连接名称

    我正在编写一个简单的批处理脚本来检索 Windows 上的所有网络接口 但我只需要本地连接名称 本地连接接口名称不是默认名称 有没有办法使用批处理脚本仅检索本地连接名称作为字符串 不完全确定您在问什么 但我认为您的问题是您想要获取网络接口的
  • 读取 .pdb 文件

    我有很多 pdb 格式的文件 其中一些已下载 但到目前为止我无法使用或读取其中的内容 因此我正在寻找如何从 MS Windows XP 读取和查看 pdb 文件格式 有谁知道怎么打开吗 如果您将 PDB 视为调试器使用的 程序数据库 PDB
  • EULA 接受 Bash 脚本

    我有一个尝试安装垃圾箱的脚本 除了 bin 在 more 中打开 EULA 之外 一切正常 在脚本再次开始并自行完成安装之前 您必须手动 ctrl c 退出此 more 实例 因为这更多的是逃离 shell 所以脚本在打开后不知道要运行什么
  • 在 Linux 服务器上创建和编辑 MS-Word 文档?

    希望开发处理文档的服务器端应用程序 源文档大多是MS Word 2003 2007 即MS版本的Docx 希望服务器应用程序能够在linux或windows上运行 想知道在linux下读写MS Word文件最好的工具或库是什么 兼容性是最重
  • 为什么 %processor_architecture% 总是返回 x86 而不是 AMD64

    我正在尝试检索环境变量来检测系统是32位还是64位 但在64位服务器上环境变量 processor architecture 正在返回x86代替AMD64 有人对此有任何线索吗 您可能获得了错误的环境变量 如果您的应用程序是在 64 位操作
  • .NET 或 Windows 同步原语性能规范

    我目前正在写一篇科学文章 我需要非常准确地引用 有人可以向我指出 MSDN MSDN 文章 一些已发表的文章来源或一本书 我可以在其中找到 Windows 或 NET 同步原语的性能比较 我知道这些是按性能降序排列的 互锁 API 关键部分
  • 使用 .htaccess 启用 PHP 短标签

    我在自己的 Centos 服务器上设置了 Apache 并具有多个虚拟 Web 服务器 并且我希望仅为位于以下位置的其中一个 Web 服务器启用 PHP 短标记 var www ostickets html 我可以通过添加成功启用短标签sh
  • 后台地理围栏 Windows Phone 8.1 (WinRT)

    Issue 我试图在 WP8 1 WinRT 中发生地理围栏事件 进入 退出 时触发后台任务 我已经编写了一个示例应用程序来尝试让它工作 但似乎无法做到这一点 到目前为止 我已采取以下步骤来尝试让地理围栏在后台运行 检查位置功能 创建 注册
  • gpg:抱歉,根本没有请求终端 - 无法获取输入

    解密时出现以下错误 eyaml decrypt s ENC and the key goes on here gnupg quiet no secmem warning no permission warning no tty yes de
  • 获取文件夹及其子文件夹中最长文件路径的长度

    我正在寻找一个可以从命令行 批处理 PowerShell 运行的脚本 该脚本将遍历文件夹及其子文件夹 并返回一个数字 该数字是最长文件路径的长度 我已经看到了一些批处理和 PowerShell 脚本 例如 如何在 Windows 中查找路径
  • 删除 Python 中某些操作的 root 权限

    在我的 Python 脚本中 我执行了一些需要 root 权限的操作 我还创建并写入文件 我不想由 root 独占所有 而是由运行我的脚本的用户独占所有 通常 我使用以下命令运行脚本sudo 有办法做到上述吗 您可以使用以下方式在 uid
  • vim e518:未知选项:

    我在 UNIX 系统上有一个文本文件 以下文本文件内容会产生问题 good ok line vi bad line ok ok line 所以如果我运行 vim test txt 我收到以下错误 test txt 3L 39C Error
  • Powershell DSC Pull 服务器引发内部错误 - Microsoft.Isam.Esent.Interop 未找到

    我已按照 Powershell org 中的说明进行操作DSC Book http powershell org wp ebooks 设置 http Pull 服务器 Windows 2012 服务器 以与 DSC 一起使用 我设置了 ht
  • 如何使用 cython 编译扩展?

    我正在尝试从示例页面编译一个简单的 cython 扩展here http docs cython org src userguide tutorial html在我安装了 Python 2 6 64 位版本的 Windows 7 64 位计
  • 带图像的简单 GUI [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我试图在简单的 GUI 上显示一些卡
  • 是否有比 lex/flex 更好(更现代)的工具来生成 C++ 分词器?

    我最近将源文件解析添加到现有工具中 该工具从复杂的命令行参数生成输出文件 命令行参数变得如此复杂 以至于我们开始允许它们作为一个文件提供 该文件被解析为一个非常大的命令行 但语法仍然很尴尬 因此我添加了使用更合理的语法解析源文件的功能 我使
  • 批处理文件 - 读取特定行,并将该行中的特定字符串保存为变量

    有没有办法让 for f 循环 或其他任何东西 读取特定行 这是我到目前为止的代码 它读取每一行的第一个单词 echo off set file readtest txt for f tokens 1 delims A in file do
  • 在Linux中使用C/C++获取机器序列号和CPU ID

    在Linux系统中如何获取机器序列号和CPU ID 示例代码受到高度赞赏 Here http lxr linux no linux v2 6 39 arch x86 include asm processor h L173Linux 内核似

随机推荐

  • HTML中文样式

    http jingyan baidu com article 915fc414f2d3e651384b204b html 例1 小米米官网 font family Arial Microsoft YaHei 黑体 宋体 sans serif
  • anaconda、python3.6、tensorflow1.13.0、cuda10.0和cudnn7.5.0的安装

    1 下载和安装anaconda 1 anaconda下载 从清华大学镜像下载 Tsinghua Open Source Mirror 2 anaconda安装 打开下载的 Anaconda 文件 如图 点击Next 点击 I Agree 选
  • [GCC学习]get the optimized function call graph

    当GCC以优化方式编译代码的时候 它会执行Dead Code Elimiation DCE 就是把那些源代码中定义但是却从未调用到的函数从中间目标文件中去掉 o文件 例如下面这段代码 include
  • QQ、手机号、微信、身份证、邮箱正则验证

    QQ正则验证 查了下 现在QQ的长度最长是10位数 验证格式为不以0开头的5 10位数字就可以了 var reg 1 9 d 4 9 reg test 0123456 false reg test 10000 true 手机号验证 验证第一
  • 教你一步步搞定win7环境下RobotFramework的环境搭建

    一 安装Python 官网 https www python org 因为Robot Framework框架是基于Python语言开发的 所以这个是前提 注意事项 1 需要选择Python2 2 安装Python2 7 9 Python3
  • XML中的Schema

    XML中的Schema 对于 Schma 这个词我们可能了解得很少 但其实我们经常会用到 比如在Spring的配置文件中 在SpringMVC的配置文件中 一般我们创建一个Spring的配置文件都会在文件头写一段配置 比如Spring的配置
  • 使用CNN预测基因可及性

    使用CNN预测基因可及性 对于要转录的基因 转录因子蛋白必须能够访问它们才能与DNA结合 遗传密码中的突变会极大地改变DNA的可及性 进而影响基因表达 了解这些突变如何扰乱遗传机制可以导致更有针对性的医学和个性化治疗 但是 当前无法有效解释
  • 语义分析- C-- 语言

    C V1 0 E gt n true false E E E E 类型合法的程序 3 4 false true 类型不合法的程序 3 true true false 对这个语言 语义分析的任务是 对给定的一个表达式e 写一个函数type c
  • 面试官:说说 @Configuration 和 @Component 的区别

    您好 我是路人 更多优质文章见个人博客 http itsoku com 一句话概括就是 Configuration 中所有带 Bean 注解的方法都会被动态代理 因此调用该方法返回的都是同一个实例 理解 调用 Configuration类中
  • 推进应用层零信任商业化落地,持安科技完成数千万元的新一轮融资

    零信任安全公司 持安科技 近日完成数千万元的新一轮融资 据介绍 本轮融资领投方为斯道资本 红点中国 老股东方广资本跟投 元启资本担任财务顾问 创始人兼CEO何艺表示 本轮融资将主要用于零信任安全相关的研发技术投入 人才引进和市场开拓 优化产
  • 数据仓库——分层原理

    目录 一 什么是数据仓库 二 数仓建模的意义 为什么要对数据仓库分层 三 ETL 四 技术架构 五 数仓分层架构 数仓逻辑分层 1 数据引入层 ODS Operational Data Store 又称数据基础层 1 1 数据主要来源 1
  • Archery教程

    本文基于官方文档安装 有不太详细的地方请多多包涵 下方为官方文档连接 Archery中文官方文档 简介 Archery是archer的分支项目 定位于SQL审核查询平台 旨在提升DBA的工作效率 支持多数据库的SQL上线和查询 同时支持丰富
  • VSS不需要验证自动登录的问题

    新项目要开始了 搭建好开发环境以及项目框架后 遇到第一个问题就是我自己的机子打开VS不需要登陆VSS就直接打开了解决方案 而其他的同事则没有遇到这样的情况 于是搜索了下原因 发现是设置问题 1 在VSS管理器中 工具 选项 允许网络用户名自
  • c语言中的三目运算符是什么意思,C语言中的三目运算符是什么

    C语言中的三目运算符是 三目运算符连接三个对象 是C语言中唯一一个三目运算符 又称为条件运算符 它的一般形式是 表达式a 表达式b 表达式c C语言中的三目运算符是 该运算符连接3个对象 是C语言中唯一一个三目运算符 又称为条件运算符 推荐
  • kafka实践(四):kafka使用之中的一些关注点

    预占位 本章将针对这些关注点进行一些实践 1 同步和异步发送 2 分区 组概念 3 系统自动负载分担机制 4 人为指定负载分担 5 自身的局限有哪些 6 主要的应用场景
  • linus基础命令

    Linus命令精讲 linux的哲学思想 shell shell的定义 命令行格式 获得命令帮助 1 help 2 help 3 man 4 info 5 百度 目录操作 1 pwd print work directory 2 cd 3
  • Ubuntu18.04 防火墙设置- 详细

    ubuntu 系统默认已安装ufw 1 安装 sudo apt get install ufw 2 启用 sudo ufw enable sudo ufw default deny 运行以上两条命令后 开启了防火墙 并在系统启动时自动开启
  • document.write(unescape)的作用

    document write unescape 3Cscript src gaJsHost google analytics com ga js type text javascript 3E 3C script 3E document w
  • UE4像素流推

    今天看像素流推 遇到了一些问题 一开始是下载nodejs 开启 这个是没问题的 说下和文档不同的地方 开启的不是Start SignallingServer ps1 而是run local bat 那就需要先找到powershell 运行时
  • 经典vim插件功能说明、安装方法和使用方法介绍

    1 2 8 9 1 查看 key 相关信息说明的命令 help keycodes 10 11 12 2 ctags 13 1 帮助手册查看 14 help usr