YouCompleteMe:一款Vim代码补全引擎

YouCompleteMe

简介

YouCompleteMe是一款用于Vim的快速的,根据你的输入进行模糊搜索的代码补全引擎。

它包含以下几个补全引擎:

  • 适用于任何编程语言的标识符引擎。
  • 基于Clang的用于C/C++/Objective-C/Objective-C++(C语言家族)的基本语法代码补全引擎
  • 基于Jedi的用于Python2和3 (适用JediHTTP封装)的代码补全引擎
  • 基于OminiSharp的用于C#的代码补全引擎
  • 用于Go代码补全的Gocode和Godef语法引擎的合并
  • 基于TSServer的用于TypeScript的代码补全引擎
  • 基于Tern的用于JavaScript的代码补全引擎
  • 基于racer的用于Rust的代码补全引擎
  • 使用基于Vim的omnicomplete系统数据的omnifunc补全器来提供更多其他语言的语法补全(Ruby,PHP等)

补全效果如下图:

YouCompleteMe示例

首先,获得补全提示内容并不需要用户使用任何快捷键而是自动弹出,用户可以使用TAB键进行补全项选择;补全提示的内容并不是将你输入的内容作为前缀进行补全查找,而是将你输入的内容作为子序列进行查找,如abc就是xaybgc的一个子序列,之后将补全提示按照相关性从上往下排序;由于标识符引擎的作用,上述功能对所有语言都有效,因为它将收集当前文件和你曾经访问的文件的所有标识,当你输入的时候完成补全的功能;另外,对于C语言家族而言,YCM能够提供语法错误提示的功能,因为Clang将编译你的文件并检查其中的警告和错误,这一过程你也不需要保存文件或者使用快捷键来触发。

安装(以MacOS为例)

  1. 安装最新版的MacVim如果你不使用MacVim GUI版,推荐使用位于MacVim.app(MacVim.app/Contents/MacOS/Vim)包中的Vim二进制文件。为了保证程序正确运行,将mvim脚本从MacVim下载目录拷贝到系统本地二进制目录(如/usr/local/bin/mvim)然后建立链接:ln –s /usr/local/bin/mvim vim
  2. 使用Vundle安装YouCompleteMe(YCM是一个编译完成的组件,当你使用Vundle更新YCM时,ycm_core库的API改变了的话,YCM将提示你重新进行编译。此时你需要重新执行安装过程) 注:如果你想使用C家族语言的语法补全,必须保证已经安装带有最新命令行工具的Xcode。
  3. 安装CMake(优先选用Homebrew)
  4. 编译编译YCM包含C语言家族补全支持:

    编译YCM不包含C语言家族补全支持:

    其他语言支持编译选项包括:

    • C# 支持:安装Mono 并 添加 –omnisharp-completer 选项
    • Go 支持:安装Go并添加 –gocode-completer 选项
    • TypeScript 支持: 先安装Node.js 和 npm, 然后使用 npm install -g typescript安装 TypeScript SDK
    • JavaScript 支持:安装Node.js 和 npm 并添加 –tern-completer
    • Rust support: 安装rust并添加–racer-completer 选项
    • 如果想简单的全部编译,使用–all选项,但前提是保证xbuild,go,tsserver,node,npm,rustc和cargo工具已经安装在你的PATH路径中。此时再运行,cd ~/.vim/bundle/YouCompleteMe ./install.py –all。
  5. 安装完成后,再参考UserGuide进行配置

协议

YouCompleteMe采用GPL v3协议开源发布。

官方网站:http://valloric.github.io/YouCompleteMe/
开源地址:https://github.com/Valloric/YouCompleteMe

1 4 收藏

资源整理者简介:beyondwu

简介还没来得及写 :) 个人主页 · 贡献了14个资源 · 1


直接登录

推荐关注

按分类快速查找

关于资源导航
  • 伯乐在线资源导航收录优秀的工具资源。内容覆盖开发、设计、产品和管理等IT互联网行业相关的领域。目前已经收录 1439 项工具资源。
    推送伯乐头条热点内容微信号:jobbole 分享干货的技术类微信号:iProgrammer