语法补全用的是YouCompleteMe - Vim的终极自动完成插件YouCompleteMe(YCM)是Vim的快速,类型代码完成引擎。它结合了几个来源的输出并对其进行了优先排序:
- 基于标识符的引擎,适用于每种编程语言;
- 基于Clang的语义引擎,为C / C ++ / Objective-C / Objective-C ++提供本机语义代码完成(从现在开始称为“C系列语言”);
- 基于Jedi的Python完成引擎;
- 基于OmniSharp的C#完成引擎
- 一个基于omnifunc的完成器,它使用来自Vim的omnicomplete系统的数据,为许多其他语言(Ruby,PHP等)提供语义完成。
请注意,无需按任何键盘快捷键即可调用完成菜单。
YCM的第二个优点是它具有客户端 - 服务器架构。YCM的Vim部分只是一个与ycmd服务器通信的瘦客户端。启动和停止Vim时,服务器会自动启动和停止。因此,YCM不会使Vim更缓慢或以某种方式减慢文本编辑速度。
如果您正在编辑C系列文件,第三个重要的事情是诊断显示功能(显示左侧排水沟的小红色X)。当Clang编译您的文件并检测警告和错误时,它们将以各种方式呈现。您无需保存文件或按任何键盘快捷键来触发此操作,它只会在后台“发生”。
YCM还为C系列语言和Python提供语义定义/声明命令。
话不多说,请看详细的配置:
如果你需要配置vim,只需在Home目录创建一个~/.vimrc文件即可以配置vim了,如需安装插件,在~/.vim目录下创建一个bundle文件夹,插件装在里面。(我通过Vundle管理插件,自行百度Vundle怎么使用),可以参考我的vimrc配置文件(内含完整的代码注释):
set nocompatible " 去除VI一致性,必须要添加
filetype on " 必须要添加
"
" 设置包括vundle和初始化相关的runtime path
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" 另一种选择, 指定一个vundle安装插件的路径
""call vundle#begin('~/some/path/here')
"
" 让vundle管理插件版本,必须
Plugin 'VundleVim/Vundle.vim'
"
" 以下范例用来支持不同格式的插件安装.
" 请将安装插件的命令放在vundle#begin和vundle#end之间.
" Github上的插件
" 格式为 Plugin '用户名/插件仓库名'
Plugin 'tpope/vim-fugitive'
" 来自 http://vim-scripts.org/vim/scripts.html 的插件
" Plugin '插件名称' 实际上是 Plugin 'vim-scripts/插件仓库名' 只是此处的用户名可以省略
""Plugin 'L9'
" 由Git支持但不再github上的插件仓库 Plugin 'git clone 后面的地址'
Plugin 'git://git.wincent.com/command-t.git'
" 本地的Git仓库(例如自己的插件) Plugin 'fil