自动补全 (YouCompleteMe)
2014-00-00
主页:https://github.com/Valloric/YouCompleteMe
Mac OS X super-quick installation
vimrc 配置
" Go to definition else declaration
nnoremap <leader>jd :YcmCompleter GoToDefinitionElseDeclaration<CR>
" 主动调用补全
let g:ycm_key_invoke_completion = '<C-a>'
其它配置
使用这个文件 .ycm_extra_conf.py
来个不同的项目执行不同的编译标志
YCM 会在当前目录及上级目录查找这个文件,也可以指定一个全局文件作为备用
这个文件的模板在 ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py
,
是作者开发 YCM 的时候使用的
可能需要做如下修改:
-
加入一些库文件,用命令查看库路径
echo | clang -v -E -x c++ -
在输出的内容中找到如下两行,这下面的就是库路径,将其粘贴到
.ycm_extra_conf.py
文件中#include "..." search starts here: #include <...> search starts here:
补全 C 语言全局函数问题
默认情况下输入 .
, ->
, ::
之后会触发补全函数和类,
但是默认情况下是不补全全局函数的,所以 C 语言中的 printf 之类的函数就无法补全
解决办法就是手动调用补全,对应的 YCM 函数是 ycm_key_invoke_completion
将其绑定到快捷键 let g:ycm_key_invoke_completion = '<C-a>'
(默认是 <C-Space>
)