在vim中针对c++自动补全

转载 2015年07月06日 23:40:12

[转]在vim中针对c++自动补全

2011-11-14阅读2477 评论0

弄了个vim对c++的补全,主要参考自:
http://vim.wikia.com/wiki/C%2B%2B_code_completion

首先确定vim编辑.cc或者.cpp文件时当前自动补全函数,在命令模式下输入
:set omnifunc?
如果得到的结果为:omnifunc=ccomplete#Complete,说明有必要进行以下的操作以实现针对c++的自动补全
1  首先安装OmniCppComplete,参见:
安装的过程很简单,与大多数vim插件一样,cd到~/.vim/目录解压所下载的文件即可
2在~/.vim/目录下创建tags子目录
3创建stdc++ 对应的tags:
A)首先下载经高手修改定制的libstdc++头文件,可以到这里下载:
          
http://www.vim.org/scripts/script.php?script_id=2358
          并将其解压到~/.vim/tags
B) 运行以下命令
$ cd ~/.vim/tags
$ ctags -R --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++ cpp_src
$ mv tags cpp
4按照步骤3为其他库创建tags,我选择了openGL 与 FLTK,下面为openGL对应的命令, FLTK类似
ctags -R --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++ /usr/include/GL
mv tags gl

5修改~/.vimrc文件
在其中加入以下内容:
" configure tags - add additional tags here or comment out not-used ones
set tags+=~/.vim/tags/cpp
set tags+=~/.vim/tags/gl
set tags+=~/.vim/tags/fl
" build tags of your own project with CTRL+F12
map <C-F12> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .<CR>
" 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 OmniCpp_DefaultNamespaces = ["std", "_GLIBCXX_STD"]
" automatically open and close the popup menu / preview window
au CursorMovedI,InsertLeave * if pumvisible() == 0|silent! pclose|endif
set completeopt=menuone,menu,longest,preview

注:我自己的.vimrc与上文不太一样,因为我嫌CTRL与F12离得太远不好操作,将健映射改为:
nmap <silent> <leader>uc :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .<CR>
另外我的.vimrc文件里原来还有以下内容:
" mapping
inoremap <expr> <CR>       pumvisible()?"\<C-Y>":"\<CR>"
inoremap <expr> <C-J>      pumvisible()?"\<PageDown>\<C-N>\<C-P>":"\<C-X><C-O>"
inoremap <expr> <C-K>      pumvisible()?"\<PageUp>\<C-P>\<C-N>":"\<C-K>"
inoremap <expr> <C-U>      pumvisible()?"\<C-E>":"\<C-U>"
"上面的映射都是在插入模式下的映射,解释如下:
"- 如果下拉菜单弹出,回车映射为接受当前所选项目,否则,仍映射为回车;
"- 如果下拉菜单弹出,CTRL-J映射为在下拉菜单中向下翻页。否则映射为CTRL-X CTRL-O;
"- 如果下拉菜单弹出,CTRL-K映射为在下拉菜单中向上翻页,否则仍映射为CTRL-K;
"- 如果下拉菜单弹出,CTRL-U映射为CTRL-E,即停止补全,否则,仍映射为CTRL-U;


6检验
用vim打开cpp文件,输入
std::
将得到std命名空间的所有标示符,按CTRL+N或者CTRL+P选择
继续输入std::vector vi,然后输入
vi.
vim将自动提示其成员

Linux——VIM开发C++自动补全(STL、括号)和开发环境配置

首先确定vim编辑.cc或者.cpp文件时当前自动补全函数,在命令模式下输入 :set omnifunc? 如果得到的结果为:omnifunc=ccomplete#Complete,说明有必要进行...
  • sinat_36053757
  • sinat_36053757
  • 2017年04月27日 17:03
  • 835

Linux下新手如何将VIM配置成C++编程环境(可以STL自动补全)

弄拉老半天,终于弄的差不多啦,果然程序员还是需要有点折腾精神啊。1:vim的简单c++配置(语法高亮,缩进。。) 在home目录下新.vimrc文件,.文件都是不可见的,要按ctrl + h显示 ...
  • u013445530
  • u013445530
  • 2015年07月02日 14:20
  • 4699

如何使你的vim强大,c/c++/python自动补全

1 、vim c/c++/python 自动补全,语法高亮是永恒的话题。以下会对你有帮助。 Github 经典vim整理。这些链接都是简单(傻瓜式)安装。但是很有用! 可以根据自己的喜好来选...
  • dongfang1984
  • dongfang1984
  • 2016年11月13日 22:08
  • 584

Linux vim利用ctags进行自动补全的问题

对于C/C++自动补全一般涉及三个插件: ctags+OmniCppComplete clang环境+ clang_complete...
  • yanerhao
  • yanerhao
  • 2015年11月23日 15:10
  • 1988

Vim函数自动补齐(包括库函数)

我用的是ubantu 64位的. 主要是两个东西,第一个是Ctags,OmniCppComplete. 首先下载Ctags:sudo apt-get install ctags.如果需要安装就安装. ...
  • wendy260310
  • wendy260310
  • 2014年01月09日 14:09
  • 10342

Ubuntu16.04 vim 配置自动补全

Ubuntu16.04 vim 配置自动补全上个月末,ubuntu16.04的消息在各linux论坛算是炸开了锅。对于一直置立于ubuntu下的我,也是蛮期待下一个长期稳定版本的发布。好不容易等到了新...
  • kang99827765
  • kang99827765
  • 2016年05月10日 16:46
  • 6546

Vim 自动补全插件 YouCompleteMe 安装与配置

对于代码自动补全,之前一直使用的是Shougo/neocomplcache和Shougo/neosnippet。早就听说过YouCompleteMe的大名,一直想尝试一下YCM,但是还是拖到了现在。Y...
  • yangkuanqaz85988
  • yangkuanqaz85988
  • 2015年10月04日 02:32
  • 5256

vim自动补全代码(代码提示)以及我的vim配置文件 .

一:代码提示的      找到一个插件:AutoComplPop。从下面的网址中下载该工具的最新版        http://www.vim.org/scripts/script.php?s...
  • xiaojun111111
  • xiaojun111111
  • 2016年03月06日 17:09
  • 1896

vim 代码提示功能,让vim可以媲美IDE

vim是一款支持插件、功能无比强大的编辑器,无论你的系统是linux、unix、mac还是windows,都能够选择他来编辑文件或是进行工程级别 的coding。如果能把vim用好了,不仅编程效率能得...
  • u013991521
  • u013991521
  • 2016年08月08日 21:01
  • 3704

Vim自动补全神器:YouCompleteMe

第一次听说这个插件还是在偶然的情况下看到别人的博客,听说了这个插件的大名。本来打算在实训期间来完成安装的,无奈网实在不给力,也就拖到了回家的时候。在开始准备工作的时候就了解到这个插件不是很容易安装,安...
  • zhaobao1987
  • zhaobao1987
  • 2016年07月14日 19:57
  • 1148
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在vim中针对c++自动补全
举报原因:
原因补充:

(最多只允许输入30个字)