Vim函数自动补齐(包括库函数)
2014-01-09 14:09
435 查看
我用的是ubantu 64位的.
主要是两个东西,第一个是Ctags,OmniCppComplete.
首先下载Ctags:sudo apt-get install ctags.如果需要安装就安装.
下载OmniCppComplete:http://www.vim.org/scripts/script.php?script_id=1520
网页上有安装说明,我是按照他说的,放到了~/.vim这。
生成ctags:
主要是库函数和当前工程:
1.库函数:
可以参考这个http://vim.wikia.com/wiki/C++_code_completion。先下载modified
libstdc++ header,我照着wiki上那样,把这个头文件放到了~/.vim/tags下,
进入到这个目录下执行:
我们自己工程的cpp生成tags的方法:
我们在用vim编辑的时候最好,写一段就生成一段.我们可以在vim配置文件中进行设置,编辑代码的时候按下某一些键就可以在我们工程目录下生成tags。
这是我的vim配置:
前面两句就是tags的路径,$MyProject是我工程的环境变量。最后一句的意思就是我写代码的时候,在命令的模式按下ctrl+F12就会在我工程的路径下生成tags。
然后就是设置OmniCppComplete.可以照着omnicppcomplete给的帮助文档进行设置,我的设置是
我在我的MyProject下新建了一个测试的.cpp文件。先测试了一下我自己的类能不能补全。
已经自动补全了。
再来测试一下标准库,用vector做为我的例子,如图:
s是一个vector,我输入p就自动进行提示了。
现在只是有补全,还没有函数参数,可以使用code_complete查看链接http://www.vim.org/scripts/script.php?script_id=1764
事实上,vim自己提供了很多的补全函数,可以到vim的目录下,里面有一个autoload(我电脑是/usr/share/vim/vim74)里面你会发现有很多complete函数对应不同的文件类型,
要想使用这些函数,可以在你的vimrc中加入(以python为例,其他类似):autocmd Filetype python set omnifunc=pythoncomplete#Complete,其中omnifunc这个可以使用help omnifunc查看使用方式,这里使用了filetype,前提是filetype plugin on 打开了,后面的函数名字,大家可以打开autoload下的*.vim文件查看函数的名字。
自动添加括号:
打开vim的配置文件,加入以下代码
就可以了。
在vim中调用g++,gcc,gdb什么的。
在命令模式下按下F5调用CompileRun(),第一句是保存文件,第二句就是调用g++ ,%就是当前文件,比如叫test.cpp,%<就是test。我在我电脑上是通过了的,没有弄c的编译选项,加上应该很easy。
主要是两个东西,第一个是Ctags,OmniCppComplete.
首先下载Ctags:sudo apt-get install ctags.如果需要安装就安装.
下载OmniCppComplete:http://www.vim.org/scripts/script.php?script_id=1520
网页上有安装说明,我是按照他说的,放到了~/.vim这。
生成ctags:
主要是库函数和当前工程:
1.库函数:
可以参考这个http://vim.wikia.com/wiki/C++_code_completion。先下载modified
libstdc++ header,我照着wiki上那样,把这个头文件放到了~/.vim/tags下,
进入到这个目录下执行:
ctags -R --sort=1 --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++ -f cpp cpp_src这是生成tags的命令,具体的选项的含义可以去网上搜一下,执行完成了之后~/.vim/tags的目录下不仅有那个头文件,还多了一个名字为cpp的文件,这就是我们刚才生成的标准c++库的tags.
我们自己工程的cpp生成tags的方法:
我们在用vim编辑的时候最好,写一段就生成一段.我们可以在vim配置文件中进行设置,编辑代码的时候按下某一些键就可以在我们工程目录下生成tags。
这是我的vim配置:
set tags+=~/.vim/tags/cpp set tags+=$MyProject/tags map <C-F12> :!ctags -R --c++-kinds=+pl --fields=+iaS --extra=+q .<CR>
前面两句就是tags的路径,$MyProject是我工程的环境变量。最后一句的意思就是我写代码的时候,在命令的模式按下ctrl+F12就会在我工程的路径下生成tags。
然后就是设置OmniCppComplete.可以照着omnicppcomplete给的帮助文档进行设置,我的设置是
filetype plugin on syntax enable let OmniCpp_MayCompleteDot = 1 " autocomplete with . let OmniCpp_MayCompleteArrow = 1 " autocomplete with -> let OmniCpp_MayCompleteScope = 1 " autocomplete with :: let OmniCpp_SelectFirstItem = 2 let OmniCpp_NamespaceSearch = 2 let OmniCpp_ShowPrototypeInAbbr = 1 let OmniCpp_GlobalScopeSearch=1 let OmniCpp_DisplayMode=1 let OmniCpp_DefaultNamespaces=["std"]
我在我的MyProject下新建了一个测试的.cpp文件。先测试了一下我自己的类能不能补全。
已经自动补全了。
再来测试一下标准库,用vector做为我的例子,如图:
s是一个vector,我输入p就自动进行提示了。
现在只是有补全,还没有函数参数,可以使用code_complete查看链接http://www.vim.org/scripts/script.php?script_id=1764
事实上,vim自己提供了很多的补全函数,可以到vim的目录下,里面有一个autoload(我电脑是/usr/share/vim/vim74)里面你会发现有很多complete函数对应不同的文件类型,
要想使用这些函数,可以在你的vimrc中加入(以python为例,其他类似):autocmd Filetype python set omnifunc=pythoncomplete#Complete,其中omnifunc这个可以使用help omnifunc查看使用方式,这里使用了filetype,前提是filetype plugin on 打开了,后面的函数名字,大家可以打开autoload下的*.vim文件查看函数的名字。
自动添加括号:
打开vim的配置文件,加入以下代码
:inoremap ( ()<ESC>i :inoremap ) <c-r>=ClosePair(')')<CR> :inoremap { {<CR>}<ESC>O :inoremap } <c-r>=ClosePair('}')<CR> :inoremap [ []<ESC>i :inoremap ] <c-r>=ClosePair(']')<CR> :inoremap " ""<ESC>i :inoremap ' ''<ESC>i function! ClosePair(char) if getline('.')[col('.') - 1] == a:char return "\<Right>" else return a:char endif endfunction
就可以了。
在vim中调用g++,gcc,gdb什么的。
map <F5> :call CompileRun()<CR> func! CompileRun() exec "w" exec "! g++ -o %< %" exec "! ./%<" endfunc map <F8> :call RunGdb()<CR> func! RunGdb() exec "w" exec "!g++ -g -o %< %" exec "!gdb ./%<" endfunc
在命令模式下按下F5调用CompileRun(),第一句是保存文件,第二句就是调用g++ ,%就是当前文件,比如叫test.cpp,%<就是test。我在我电脑上是通过了的,没有弄c的编译选项,加上应该很easy。
相关文章推荐
- source insight添加系统库函数头文件,实现库函数的自动补齐
- ubuntu下vim配置:自动缩进、自动补齐括号
- 用vim实现django函数的自动补全
- vim代码自动补全函数提示设置
- vim自动跳转到引用的函数
- PHP自带函数给数字或字符串自动补齐位数
- PHP自带函数给数字或字符串自动补齐位数
- 不让VIM自动补齐*号
- Ubuntu 配置VIM支持Python 完成YCM的安装实现自动补齐的功能
- python交换模式、vim模式TAB自动补齐
- VIM 自动补齐插件neocomplcache-8.0配置
- vim 自动提示、自动补齐插件 YouCompleteMe for windows Gvim 安装及使用效果
- PHP自带函数给数字或字符串自动补齐位数
- vim配置-新弄的一份-再修改-加上自动补齐-quickfix的小小修正
- vim自动补全gtk API 函数
- vim+taglist+ctags+cscope+自动补齐
- vim+code_complete+ctags配置vim自动缩进函数补全环境(转)
- vim+code_complete+ctags配置vim自动缩进函数补全环境
- vim使用—移动到文件开始和结束位置和当前位置(gg,G)、快速定位到当前光标所在变量或函数的定义处(gd)、自动对齐C和C++程序(先gg再=再G)、自动补全变量名,函数名和字符串ctrl+n或ct
- 笔记---Linux---Vim自动补齐的配置