一些vim的插件和配置

时间:2021-02-12 05:59:39

vim的一个之处在于广大vimmer所无私奉献的插件,令我等不懂vim脚本的小白受益无穷。在此介绍一些我所安装的插件和配置,都是针对写程序的,没有文本编辑的,也没有日历,也不能煮咖啡。

1) A

      功能简单但很有用的一个插件,键入:A即可切换头文件和源文件。默认支持C,C++,但不支持objc,对此可修改a.vim,在 a.vim 中加入如下语句:

call <SID>AddAlternateExtensionMapping('m',"h") "Objective-C file

call <SID>AddAlternateExtensionMapping('mm',"h") "Objective-C++ file

2) AutoComplPop

      vim中,按 <Ctrl - n> 可弹出自动补全菜单;这个插件则可在键入过程中自动弹出自动补全菜单,有时方便有时烦。

3) C

      快捷地键入一些C,C++ 程序的代码片段,常用语句,以及快速注释。例如,在正常模式或插入模式下,键入 \sd 就可输入do while语句;又如键入 \cc 可将选中的文本块注释掉等。

      由于 \ 键距离较远,可在 ~/.vimrc 中加入:

let g:C_MapLeader  = ','

      则将前缀键改为英文逗号。

      默认的文件类型也不够,如要支持 objc,则在 ~/.vimrc 中加入:

let g:C_SourceCodeExtensions = 'c cc cp cxx cpp CPP c++ C i ii m mm'

      据说还能直接在vim中调用 GCC,没试过。

3) Cocoa

      Cocoa是iOS开发的官方框架,这个插件则试图取代XCode的文本编辑功能。

      以我的使用经验,XCode的文本编辑功能是为Objc量身定做的,可定制性差,用来写 C++ 灰常悲剧,于是写Objective-C++也就悲剧了,于是就想在vim上写iOS应用,于是就有了这个插件。

      自动补全官方API——这是最重要的功能,因为iOS API的类名,方法名通常很长很长,很长很长……

      这个插件有个缺陷——有些功能不支持 .mm 文件,大约是vim觉得 .mm 文件不是objc文件,不知道怎么解决。

4) echofunc

      C,C++的插件,当输入完函数名,再输 ( 时,会在状态栏给出函数定义,很有用。依赖于ctags。

5) grep

      可在文件夹范围内搜索关键字。

6) NerdTree

      树状的文件浏览窗口,还能设置书签,比默认的File Explorer要好用。像IDE一样组织文件视图。

      笔者在 ~/.vimrc 中的相关设置如下:

 

let g:NERDTree_title="[NERDTree]" 

 

function! NERDTree_Start()

    exec 'NERDTree'

endfunction

 

function! NERDTree_IsValid()

    return 1

endfunction

 

 

 

let NERDChristmasTree=0

let NERDTreeShowBookmarks=1

let NERDTreeShowFiles=1

let NERDTreeShowLineNumbers=1

let NERDTreeMinimalUI=1

let NERDTreeChDirMode=2

 

7) SnipMate

      类似TextMate的代码片断功能。

8) SuperTab

      在自动补全菜单中,按 <Tab> 来替代 <Ctr - n>,切换。

9) TagList

      生成C,C++函数的列表窗口。

      在 ~/.vimrc 中的设置如下:

 

let Tlist_Ctags_Cmd="/usr/local/bin/ctags"

let Tlist_Auto_Open=0

let Tlist_Process_File_Always=1

let Tlist_File_Fold_Auto_Close=1

let Tlist_Sort_Type="name"

let Tlist_WinWidth=30

let Tlist_Compact_Format=1

let Tlist_Enable_Fold_Column=0

let Tlist_Display_Prototype=1

let Tlist_Show_One_File=1

let Tlist_Exit_OnlyWindow=1

let Tlist_Use_Right_Window=1

10) vimball

      用来安装vba格式的vim插件。

11) objc_matchbracket

      这个也是Objc的插件。

      Objc的视觉特点是中括号套中括号,所以书写时容易搞错搞漏,很折磨人。Xcode的编辑器能自动补齐中括号,这个插件也可以。缺点依旧,不支持.mm文件。不知道怎么改。

12) OmniCppComplete

      写C++的话,这个插件太有用了,像IDE一样提示成员函数,数据。依赖于ctags。可以在~/.vimrc中添加下句:

map <F3> :!ctags -R --c++-kinds=+p --fields=+ialS --extra=+q .<CR>

      ——这样在vim中按 <F3> 就可以生成tags文件了。

      我的空间里有~/.vimrc文件的代码,怕弄丢了就悲剧了,留着。

分类:  工具