Vim插件之vim-clang和clang complete

来源:互联网 发布:复合vb 编辑:程序博客网 时间:2024/06/01 09:22

在Vim所有的插件里面,YouCompleteMe 无疑是最强大的了,但安装也是异常的繁琐,在Windows平台上更加麻烦,下面介绍两个基于clang的插件可以部分替代YCM的功能(主要面向C家族)。

clang complete

首先介绍clang complete,YCM对C家族的补全就是基于它,功能之强大不用多提,使用它必须先下载安装LLVM并将其添加到系统环境变量中(下面提到的vim-clang插件也需要这么做),之后安装clang complete并写入下面的配置即可

"clang complete"自动选择第一个匹配项但不插入到代码中let g:clang_auto_select = 1"在->. ., ::后自动补全let g:clang_complete_auto = 1"发现错误之后打开QuickFix窗口let g:clang_complete_copen = 1"高亮警告和错误let g:clang_hl_errors = 1"插入第一个补全后关闭预览窗口let g:clang_close_preview = 1"开启对C++11的编译支持let g:clang_user_options = '-std=c++11'"设定clang库路径let g:clang_library_path = 'C:\Program Files (x86)\LLVM\bin'"补全预处理指令,宏和常数,默认为0,不补全let g:clang_complete_macros = 1"补全代码模式,比如循环等,默认为0,不补全let g:clang_complete_patterns = 1"<C-]>跳转到声明let g:clang_jumpto_declaration_key = "<C-]>""<C-w>]在预览窗口中打开声明let g:clang_jumpto_declaration_in_preview_key = "<C-w>]""<C-t>回跳let g:clang_jumpto_back_key = "<C-t>""使用UltiSnips进行代码片段补全let g:clang_snippets = 1let g:clang_snippets_engine = 'ultisnips'

上面设定的clang库路径,请根据你的电脑上llvm安装的位置进行修改,另外这个插件与Vim自带的Omni completion有冲突,要使用它必须关闭Omni completion。

vim-clang

vim-clang是在clang complete的启发下开发的,主要特点是补全速度快,支持格式化代码,配置如下

"vim-clang"开启对C11和C++11的支持let g:clang_c_options = '-std=gnu11'let g:clang_cpp_options = '-std=c++11 -stdlib=libc++'"关闭语法检查let g:clang_check_syntax_auto = 0"不要自动格式化代码let g:clang_format_auto = 0"代码格式化风格选项依次有LLVM,Google,Chromium,Mozilla,WebKit"let g:clang_format_style = 'LLVM'"使得vim-clang的补全与其他IDE一致let g:clang_cpp_completeopt = 'longest,menuone,preview'

Vim自带的补全

当然,你想简单一点也可以使用Vim自带的补全,具体见下表

按键 补全对象 Ctrl-X Ctrl-F 文件名 Ctrl-X Ctrl-L 整行 Ctrl-X Ctrl-D 宏定义 (包括包含文件里的) Ctrl-X Ctrl-I 当前文件以及所包含的文件 Ctrl-X Ctrl-K 字典文件内的单词 Ctrl-X Ctrl-T 同义词词典文件内的单词 Ctrl-X Ctrl-] 标签 Ctrl-X Ctrl-V Vim命令行 Ctrl-X Ctrl-O 使用Vim自带的Omni completion Ctrl-N 下一个匹配项 Ctrl-P 上一个匹配项 Ctrl-A 重复上一次插入的文本
原创粉丝点击