vim C\C++ 插件ctags+OmniCppComplete+taglist+WinManager+c.vim配置


已经很久没有写博客了,但新年新气象,况且我又有新的打算,所以,学习是在所难免的

环境:
Linux ubuntu 3.2.0-23-generic-pae

所有插件的下载地址

http://www.vim.org/scripts/

准备工作:

$ mkdir ~/.vim #用于存放所有的vim插件

$ mkdir ~/.vim/tags #用于存放ctags文件

$ cat ~/.vimrc #vim的配置文件

    ctags+OmniCppComplete


主要是用于C\C++代码提示,比如按下 点 ( . )或箭头 ( -> )就会出现相应的变量或函数名

1) 安装ctags:

ctags在Ubuntu里面我记得是默认安装好了的,如果没有的话apt-get也很方便

2) 建立ctags数据

本质上来说,ctags就是抓取所有.h头文件中的结构体,类名,函数的声明,并把这些存到一个文件中去

具体步骤为:

$ sudo ctags  -I __THROW  -I __THROWNL -I __attribute_pure__ -I __nonnull -I __attribute__ -R --c-kinds=+p --fields=+iaS --extra=+q --language-force=C  /usr/include/

记住一定要加绝对路径,网上的一些教程写的是相对路径,是对出错的

执行完命令后会生成一个tags文件,vi打开会看到全是各种声明

$ cp /usr/include/tags ~/.vim/tags

然后在.vimrc文件里添加

set tags+=~/.vim/tags/tags

以上完成后,你可以vi打开cpp文件,然后在有比如printf的地方, ctrl+] 可以跳转到相应的声明

注意,有可能tags文件的权限是root,需要把它改成user权限

3) 安装OmniCppComplete

去vim页面上下载,并且解压到~/.vim下

添加以下内容到.vimrc

" OmniCppComplete
let OmniCpp_NamespaceSearch = 1
let OmniCpp_GlobalScopeSearch = 1
let OmniCpp_ShowAccess = 1
let OmniCpp_ShowPrototypeInAbbr = 1 " show function parameters
let OmniCpp_MayCompleteDot = 1 " autocomplete after .
let OmniCpp_MayCompleteArrow = 1 " autocomplete after ->
let OmniCpp_MayCompleteScope = 1 " autocomplete after ::

这时,比如输入gethost然后按ctrl+x ctrl+o这时就能提示gethostbyname等函数

参考资料:

http://www.libaqiang.com/?p=78163

http://www.cnblogs.com/zen_chou/archive/2009/12/18/1626975.html

http://blog.csdn.net/tge7618291/article/details/4216977

http://lug.fh-swf.de/vim/vim-c/csupport.html#csupport-usage-vim

完整的.vimrc文件

set nocompatible
set nu
nmap <C-B> <LEFT>
nmap <C-F> <RIGHT>
nmap <C-P> <UP>
nmap <C-N> <DOWN>
nmap <C-A> <HOME>
nmap <C-E> <END>
imap <C-B> <LEFT>
imap <C-F> <RIGHT>
imap <C-P> <UP>
imap <C-N> <DOWN>
imap <C-A> <HOME>
imap <C-E> <END>
nmap <C-K> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .
set tabstop=2
set shiftwidth=2
:colorscheme ron
set cindent

filetype plugin on

set completeopt=menu

" configure tags - add additional tags here or comment out not-used ones
set tags+=~/.vim/tags/tags
set tags+=~/.vim/tags/linux_include

"set the auto complete menu color
highlight Pmenu ctermbg=13 guibg=LightGray
highlight PmenuSel  cterm=bold ctermfg=9 ctermbg=4

" OmniCppComplete
let OmniCpp_NamespaceSearch = 1
let OmniCpp_GlobalScopeSearch = 1
let OmniCpp_ShowAccess = 1
let OmniCpp_ShowPrototypeInAbbr = 1 " show function parameters
let OmniCpp_MayCompleteDot = 1 " autocomplete after .
let OmniCpp_MayCompleteArrow = 1 " autocomplete after ->
let OmniCpp_MayCompleteScope = 1 " autocomplete after ::

let g:acp_enableAtStartup = 0 "disable it
let g:acp_behaviorKeywordCommand="\<C-x>\<C-o>"

let Tlist_Show_One_File=1
let Tlist_Auto_Open=1
let Tlist_Show_Menu=1
let Tlist_WinWidth=18
let Tlist_WinHeight=10
let Tlist_Close_On_Select=0
let Tlist_Sort_Type='name'
let Tlist_Use_Right_Window = 1

let g:winManagerWindowLayout='FileExplorer'
let g:persistentBehaviour=0 "leave vim if only one window
let g:winManagerWidth=20

":WMToggle to open the winmanager



你可能感兴趣的:(vim C\C++ 插件ctags+OmniCppComplete+taglist+WinManager+c.vim配置)