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自带的补全,具体见下表
阅读全文
0 0
- Vim插件之vim-clang和clang complete
- config vim + clang complete with libclang on windows/linux
- vim clang 补全
- vim 配置 clang-format
- clang complete
- CentOS 7+vim+ycm(clang)
- vim clang autocomplete插件---扫地老僧的Blog
- clang带来的clang complete代码补全插件
- Sublime Text3插件Clang-Complete的安装
- clang
- Clang
- clang
- clang
- clang
- emacs 学习之安装emacs-clang-complete-async之路
- vim 集成开发环境搭建之自动扑全clang设置
- Clang插件学习 Clang插件常用API
- clang插件的安装
- 八皇后
- ROS 中配置使用Eigen库
- php读取post数据解析
- MyBatis--注解式开发
- Liunx之信号捕捉与模拟sleep函数
- Vim插件之vim-clang和clang complete
- Resource 接口是 Spring 资源访问的接口,具体的资源访问由该接口的实现类完成
- TensorBoard可视化结构管理工具在Windows下的使用
- 集合的整数表示
- 3.1 Linux中的文件IO (7、8节)
- 《C语言及程序设计初步》_1.7分支结构程序体验_实践6——正差值(方法1)
- DirectX11(二)
- kaldi005 -- 构图
- iOS学习笔记-072.CALayer02——transform属性