README 文档¶
Vim代码补全引擎YouCompleteMe
帮助、建议及支持¶
如果在使用 YCM 过程中遇到问题,需要帮助、建议和支持:
请先仔细阅读与你操作系统对应的 安装指南 。
推荐使用我们提供的`install.py`脚本进行安装。
然后根据你使用的sematic completer查看 用户指南 。如果你使用C/C++/Objective-C/Objective-C++/CUDA,请 _务必_ 阅读 这一节 。
最后,查看 FAQ 。
如果依然无法解决问题, 看着里 。
请 不要 去freenode的#vim寻求帮助。 请根据 此处提供的联系方式 ,直接联系YouCompleteMe项目维护者。
简介¶
YouCompleteMe 是个快速、即时响应并支持模糊搜索的 Vim_ 代码补全引擎。它包含了如下几个补全引擎:
- 一个基于标识符的引擎,支持所有编程语言;
- 一个基于 Clang 的引擎,为 C/C++/Objective-C/Objective-C++/CUDA (后续简称“C系语言”)提供 native sematic code 补全;
- 一个基于 clangd 的 实验阶段的 C系语言补全引擎;
- 一个基于Jedi 的引擎,用于补全 Python 2 和 3;
- 一个基于OmniSharp 的引擎,用于补全 C# ;
- 一个结合了 Gocode 和 Godef 的语义引擎,用于 Go 补全;
- 一个基于 TSServer 的引擎,用于 JavaScript 和 TypeScript 补全;
- 一个基于 racer 的 Rust 补全引擎;
- 一个基于 jdt.ls 的实验中的 Java 补全引擎;
- 一个基于 omnifunc 的引擎,使用 Vim 的 omnicompelete 系统为许多其他预言(Ruby、PHP等)提供补全支持

动图 demo 说明:
首先注意,demo 中全程 无需借助键盘快捷键 去触发补全列表。用户输入时,补全建议会自动出现。如果找不到所需的补全项或需要继续输入,则继续打字即可,引擎不会造成干扰。
当看到有用的补全项,按下 TAB 去选择,这个字符串就被插入到了文本中。持续按 TAB 可以在补全列表中循环选择。
如果提供的补全建议不够相关,用户可以输入更多字符,过滤掉不想要的补全项。
一个重点: 补全项的过滤并非基于所输入字符串前缀 (尽管起到了一定作用)。输入需要满足补全项的 子序列 匹配。换句话说,输入的字符顺序要和它们出现在补全项中的顺序一致。所以 abc 是 xaybgc 的子序列,但不是 xbyxaxxc 的。过滤后,一个复杂的排序系统会对补全列表进行排序,相关度最高的选项会出现在菜单顶部(所以通常你只需要按一次 TAB)。
得益于基于标识符的补全引擎,上述几点支持任何编程语言。引擎会收集当前文件和你访问过的其他文件(以及 tags 文件)中的所有标识符,当你输入的时候对它们进行搜索(标识符会根据文件类型分组)。
demo 也展示了实际使用中的的语义引擎。当用户在输入模式下打出 . 、 -> 或者 :: (此处为 C++ ;其他的语言有不同的触发方式),语义引擎随即触发(也可以用快捷键来触发;见下文)。
最后,你可以看到 YCM 针对 C 系文件的诊断展示特性(出现在左端的小红X;受 Syntastic 启发)。 Clang 编译你的文件时检测到警告和错误,会以多种方式展现出来。你不需要通过保存文件或者快捷键去触发它,它会在后台自然“发生”。
大体上, YCM 可以淘汰下列 Vim 插件,因为 YCM 包含了它们所有的特性,而且做得更多更好:
- clang_complete
- AutoComplPop
- Supertab
- neocomplcache
以及……
YCM 还对许多语言提供了 基于语义的仿IDE特性 :
- 查找标识符的声明、定义和使用等;
- 展示类、变量、函数等的类型信息;
- 语言方法、成员等的文档。
- 修复常见代码错误,比如确实的分号、拼写错误等;
- 基于语义的跨文件变量重命名;
- 代码格式化;
- 去除无用引入(import)、给引入排序等;
特性因文件类型而异,所以确保阅读 特性速览 和 completer 子命令全列表 以找到适用于你心爱语言的结果。
你也会发现, YCM 还拥有文件路径 completer(尝试在文件中输入 ./ )和集成了 `UltiSnips`_ 的 completer 。
安装¶
Mac OS X¶
此处(使用 install.py )是安装 YCM 最快捷的方式,但可能并不适用于所有人。如果以下教程对你不奏效,移步 完整安装指导 。
安装 MacVim_ 最新版。对,MacVim, 最新版 。
如果你不用 GUI 版本,建议选择 MacVim.app 包( MacVim.app/Contents/MacOS/Vim )中的 Vim 二进制文件。为确保生效,从下载好的 MacVim_ 中正确复制 mvim 脚本到你的二进制文件目录(例如 /usr/local/bin/mvim )然后创建链接:
ln -s /usr/local/bin/mvim vim
用 Vundle 安装 YCM 。
谨记: YCM 插件包含编译组件。如果你用 Vundle 更新 了 YCM 而 ycm_core 库的 API 发生变化(很少发生), YCM 会提醒你重新编译。那么你需要重新走一遍安装流程。
注意: 如果你需要 C 系语言补全,你 必须 安装最新版 Xcode 搭配最新版 Command Line Tools (首次运行 clang 时会自动安装,或者运行 xcode-select --install 来手动安装 )。
安装 CMake 。首选 HomeBrew ,这里有[stand-alone CMake installer][cmake-download].
如果 你已经通过 HomeBrew 安装了 Python 和/或 MacVim ,查看 FAQ 。
编译 包含 对 C 系语言语义支持的 YCM :
cd ~/.vim/bundle/YouCompleteMe
./install.py --clang-completer
编译 包含 基于 实验阶段的 clangd 的C系语言语义支持:
cd ~/.vim/bundle/YouCompleteMe
./install.py --clangd-completer
注意,你可以安装同时带有 libclang 和 clangd 的 YCM , clangd 会成为首选,除非你在 vimrc 中加上:
let g:ycm_use_clangd = "Never"
编译 不包含 对 C 系语言语义支持的 YCM :
cd ~/.vim/bundle/YouCompleteMe
./install.py
以下为可用的附加语言支持选项:
- C# 支持:用 Homebrew 安装 Mono 或下载[Mono Mac package][mono-install-osx] 并在执行
install.py时添加--cs-completer。 - Go 支持:安装 Go ,并在执行
install.py时添加--go-completer。 - JavaScript 和 TypeScript 支持:安装 Node.js 和 npm ,并在执行
install.py时添加--ts-completer。 - Rust 支持:安装 Rust ,并在执行
install.py时添加--rust-completer。 - Java 支持:安装 JDK8 (必须是8) ,并在执行
install.py时添加--java-completer。
如果要一次性编译所有特性,则加上 --all 参数。如果要安装所有语言特性,确保在 PATH 路径下安装了 xbuild, go, tsserver, node,
npm , rustc, 和 cargo 然后直接运行:
cd ~/.vim/bundle/YouCompleteMe
./install.py --all
搞定。查阅 用户指南 了解 YCM 的用法。不要忘记,如果你需要 C 系语言的补全引擎正常工作,则需要对 YCM 提供你的项目的 compilation flags 。这些都可以在用户指南中找到。
YCM 拥有健全的默认配置,但你可能依然想要看看可选的配置细节。基于谨慎考虑,一些有趣的配置默认为关闭状态,而你可能想要开启它们。
Linux 64-bit¶
此处(使用 install.py )是安装 YCM 最快捷的方式,但可能并不适用于所有人。如果以下教程对你不奏效,移步 完整安装指导 。
确定你已经安装了附带 Python 2 或 3 支持的 Vim 7.4.1578 。 Fedora 27 或更高版本上的 Vim 包以及 Ubuntu 16.04 或更高版本上预装的 Vim 版本都已经足够新。你可以用 vim --version 来查看所安装 Vim 的版本。如果版本太旧,你可能需要 从源码编译 Vim (不用担心,很简单)。
用 Vundle 安装 YCM 。
谨记: YCM 插件包含编译组件。如果你用 Vundle 更新 了 YCM 而 ycm_core 库的 API 发生变化(很少发生), YCM 会提醒你重新编译。那么你需要重新走一遍安装流程。
安装开发工具包, Cmake 和 Python 头文件:
- Fedora 27 和更高版本:
sudo dnf install cmake gcc-c++ make python3-devel
- Ubuntu 14.04:
sudo apt install build-essential cmake3 python3-dev
- Ubuntu 16.04 和更高版本:
sudo apt install build-essential cmake python3-dev
编译 包含 对 C 系语言语义支持的 YCM :
cd ~/.vim/bundle/YouCompleteMe
python3 install.py --clang-completer
编译 包含 基于 实验阶段的 clangd 的C系语言语义支持:
cd ~/.vim/bundle/YouCompleteMe
./install.py --clangd-completer
注意,你可以安装同时带有 libclang 和 clangd 的 YCM , clangd 会成为首选,除非你在 vimrc 中加上:
let g:ycm_use_clangd = "Never"
编译 不包含 对 C 系语言语义支持的 YCM :
cd ~/.vim/bundle/YouCompleteMe
python3 install.py
以下为可用的附加语言支持选项:
- C# 支持:用 Homebrew 安装 Mono 或下载[Mono Mac package][mono-install-osx] 并在执行
install.py时添加--cs-completer。 - Go 支持:安装 Go ,并在执行
install.py时添加--go-completer。 - JavaScript 和 TypeScript 支持:安装 Node.js 和 npm ,并在执行
install.py时添加--ts-completer。 - Rust 支持:安装 Rust ,并在执行
install.py时添加--rust-completer。 - Java 支持:安装 JDK8 (必须是8) ,并在执行
install.py时添加--java-completer。
如果要一次性编译所有特性,则加上 --all 参数。注意,这个 flag 不 安装 clangd ,你需要手动添加 --clangd-completer 。如果要安装所有语言特性,确保在 PATH 路径下安装了 xbuild, go, tsserver, node,
npm , rustc, 和 cargo 然后直接运行:
cd ~/.vim/bundle/YouCompleteMe
python3 ./install.py --all
搞定。查阅 用户指南 了解 YCM 的用法。不要忘记,如果你需要 C 系语言的补全引擎正常工作,则需要对 YCM 提供你的项目的 compilation flags 。这些都可以在用户指南中找到。
YCM 拥有健全的默认配置,但你可能依然想要看看可选的配置细节。基于谨慎考虑,一些有趣的配置默认为关闭状态,而你可能想要开启它们。
Windows¶
此处(使用 install.py )是安装 YCM 最快捷的方式,但可能并不适用于所有人。如果以下教程对你不奏效,移步 完整安装指导 。
重要: 我们假设你在使用 cmd.exe 命令行而且你知道怎么把可执行文件添加到 PATH 环境变量。
确定你已经安装了附带 Python 2 或 3 支持的版本不低于 7.4.1578 的 Vim 。你可以在 Vim 中用 :version 来查看所安装 Vim 的版本和 Python 支持情况。 Python 2 对应包含 +python/dyn , Python 3 对应包含 +python3/dyn 。要留意 Vim 的架构是32 还是 64-bit ,这对后续选择 Python 安装包很重要。我们推荐使用 64-bit 的客户端。这里提供了可供下载的 日常更新的支持 Python 2 和 3 的 32-bit 及 64-bit 的 Vim 备份 。
在 vimrc 中加上这一行:
set encoding=utf-8
YCM 需要这一项。注意,这并不能阻止你编辑非 UTF-8 编码的文件,你可以在 :e 命令中指定 ++enc 参数。
用 Vundle 安装 YCM 。
谨记: YCM 插件包含编译组件。如果你用 Vundle 更新 了 YCM 而 ycm_core 库的 API 发生变化(很少发生), YCM 会提醒你重新编译。那么你需要重新走一遍安装流程。
下载安装如下软件:
- Python 2 或 Python 3 。确定依据你的 Vim 架构来选择版本, Windows x86 对应 32-bit Vim , Windows x86-64 对应 64-bit Vim 。我们推荐安装 Python 3 。另外 你安装的 Python 版本必须和 Vim 所寻找的 Python 版本相匹配。输入
:version查看页面地步的编译器 flags 列表。找到类似-DDYNAMIC_PYTHON_DLL=\"python27.dll\"和-DDYNAMIC_PYTHON3_DLL=\"python35.dll\"的 flags 。前者说明 Vim 在寻找 Python 2.7 ,后者说明 Vim 在寻找 Python 3.5 。你需要安装其中之一,并正确匹配版本号。 - CMake 。添加 CMake 可执行文件到 PATH 环境变量。
- Visual Studio 。下载社区版。安装过程中,在 Workloads 中选择 Desktop development with C++ 。
编译 包含 对 C 系语言语义支持的 YCM :
cd %USERPROFILE%/vimfiles/bundle/YouCompleteMe
python install.py --clang-completer
编译 包含 基于 实验阶段的 clangd 的C系语言语义支持:
cd %USERPROFILE%/vimfiles/bundle/YouCompleteMe
python install.py --clangd-completer
注意,你可以安装同时带有 libclang 和 clangd 的 YCM , clangd 会成为首选,除非你在 vimrc 中加上:
let g:ycm_use_clangd = "Never"
编译 不包含 对 C 系语言语义支持的 YCM :
cd %USERPROFILE%/vimfiles/bundle/YouCompleteMe
python install.py
以下为可用的附加语言支持选项:
- C# 支持:用 Homebrew 安装 Mono 或下载[Mono Mac package][mono-install-osx] 并在执行
install.py时添加--cs-completer。 - Go 支持:安装 Go ,并在执行
install.py时添加--go-completer。 - JavaScript 和 TypeScript 支持:安装 Node.js 和 npm ,并在执行
install.py时添加--ts-completer。 - Rust 支持:安装 Rust ,并在执行
install.py时添加--rust-completer。 - Java 支持:安装 JDK8 (必须是8) ,并在执行
install.py时添加--java-completer。
如果要一次性编译所有特性,则加上 --all 参数。注意,这个 flag 不 安装 clangd ,你需要手动添加 --clangd-completer 。如果要安装所有语言特性,确保在 PATH 路径下安装了 msbuild, go, tsserver, node,
npm 和 cargo 然后直接运行:
cd %USERPROFILE%/vimfiles/bundle/YouCompleteMe
python install.py --all
你可以用 --msvc 参数来指定 Microsoft Visual C++ (MSVC) 。 YCM 官方支持 MSVC 14 (Visual Studio 2015) 和 15 (2017) 。
搞定。查阅 用户指南 了解 YCM 的用法。不要忘记,如果你需要 C 系语言的补全引擎正常工作,则需要对 YCM 提供你的项目的 compilation flags 。这些都可以在用户指南中找到。
YCM 拥有健全的默认配置,但你可能依然想要看看可选的配置细节。基于谨慎考虑,一些有趣的配置默认为关闭状态,而你可能想要开启它们。
FreeBSD/OpenBSD¶
此处(使用 install.py )是安装 YCM 最快捷的方式,但可能并不适用于所有人。如果以下教程对你不奏效,移步 完整安装指导 。
注意: YCM 官方并没有正式支持 OpenBSD / FreeBSD 。
确定你已经安装了附带 Python 2 或 3 支持的版本不低于 7.4.1578 的 Vim 。
OpenBSD 5.5 及之后的版本都自带了最近版本的 Vim 。你可以在 Vim 中用 :version 来查看所安装 Vim 的版本。
FreeBSD 11.x 需要安装 cmake :
pkg install cmake
用 Vundle 安装 YCM 。
谨记: YCM 插件包含编译组件。如果你用 Vundle 更新 了 YCM 而 ycm_core 库的 API 发生变化(很少发生), YCM 会提醒你重新编译。那么你需要重新走一遍安装流程。
编译 包含 对 C 系语言语义支持的 YCM :
cd ~/.vim/bundle/YouCompleteMe
./install.py --clang-completer
编译 包含 基于 实验阶段的 clangd 的C系语言语义支持:
cd ~/.vim/bundle/YouCompleteMe
./install.py --clangd-completer
注意,你可以安装同时带有 libclang 和 clangd 的 YCM , clangd 会成为首选,除非你在 vimrc 中加上:
let g:ycm_use_clangd = "Never"
编译 不包含 对 C 系语言语义支持的 YCM :
cd ~/.vim/bundle/YouCompleteMe
./install.py
如果系统中没有 python 可执行文件,或者默认的 python 不是编译需要的版本,则需要明确指定 python 解释器:
python3 install.py --clang-completer
以下为可用的附加语言支持选项:
- C# 支持:安装 Mono 并在执行
install.py时添加--cs-completer。 - Go 支持:安装 Go ,并在执行
install.py时添加--go-completer。 - JavaScript 和 TypeScript 支持:安装 Node.js 和 npm ,并在执行
install.py时添加--ts-completer。 - Rust 支持:安装 Rust ,并在执行
install.py时添加--rust-completer。 - Java 支持:安装 JDK8 (必须是8) ,并在执行
install.py时添加--java-completer。
如果要一次性编译所有特性,则加上 --all 参数。注意,这个 flag 不 安装 clangd ,你需要手动添加 --clangd-completer 。如果要安装所有语言特性,确保在 PATH 路径下安装了 xbuild, go, tsserver, node,
npm , rustc, 和 cargo 然后直接运行:
cd ~/.vim/bundle/YouCompleteMe
./install.py --all
搞定。查阅 用户指南 了解 YCM 的用法。不要忘记,如果你需要 C 系语言的补全引擎正常工作,则需要对 YCM 提供你的项目的 compilation flags 。这些都可以在用户指南中找到。
YCM 拥有健全的默认配置,但你可能依然想要看看可选的配置细节。基于谨慎考虑,一些有趣的配置默认为关闭状态,而你可能想要开启它们。
完整安装指导¶
这里提供了让 YCM 在 Unix 和 Windows 系统上运行起来的必要步骤。
Windows 用户注意: 我们假设你在使用 cmd.exe 命令行,而且所需的可执行文件已经加入了 PATH 环境变量。不要直接复制这里的命令,用 %USERPROFILE% 替换其中的 ~ 并且使用正确的 Vim 根目录(默认在 vimfiles 而不是 .vim )。
遇到任何问题,查看 FAQ 。
谨记: YCM 插件包含编译组件。如果你用 Vundle 更新 了 YCM 而 ycm_core 库的 API 发生变化(很少发生), YCM 会提醒你重新编译。那么你需要重新走一遍安装流程。
请谨遵指导,逐字阅读。
确定你的 Vim 版本 *至少是 7.4.1578* 并且支持 Python 2 或 Python 3 脚本。
进入 Vim ,输入
:version。查看输出结果的前2-3行,里面应该包括Vi IMproved X.Y, X.Y 是 vim 的主要版本。如果你的版本大于 7.4 ,那么你已经准备就绪。如果你的版本是 7.4 ,找到下面的Included patched: 1-Z, Z 需要是大于或等于 1578 的数字。如果你的 Vim 版本不够新,你需要 从源码编译Vim (不要担心,很简单)。
搞定 Vim 7.4.1578+ 版本之后,在 Vim 中输入
:echo has('python') || has('python3'),输出结果应该为 1 。如果是 0 ,那么就需要安装支持 Python 的 Vim 版本。对于 Windows ,还需要检查 Vim 的架构是 32 还是 64-bit 。这一点很重要,因为这个架构需要和 Python 以及 YCM 库架构匹配。我们推荐使用 64-bit 的 Vim 。
用 Vundle (或者 Pathogen ,但用 Vundle 更好) 安装 YCM 。对于 Vundle ,需要添加
Plugin 'Valloric/YouCompleteMe'到 vimrc 。如果你不用 Vundle 来安装 YCM ,确保在checkout之后执行
git submodule update --init --recursive来获取 YCM 的依赖。这一步 仅仅 针对需要 C 系语言语义补全支持的情况,否则无关紧要。
下载最新版本的libclang 。 Clang 是一个用来编译 C 系语言的开源编译器,它提供了可以驱动 YCM 相关语义补全引擎的
libclang库。 YCM 支持 libclang 的 7.0.0 或更高版本。除了
libclang, YCM 还支持 实验阶段的 基于 clangd 的 completer。你可以从 llvm.org releases 下载最新版本的 clangd 。按照第4步告诉 YCM 去那里找到 clangd 可执行文件。请注意, YCM 支持 7.0.0 或更高版本的 clangd 。你可以使用系统自带的 libclang 或 clangd ,但是是在 确保版本是 7.0.0 或更高的前提下 ,否则就不要用。即使版本合适,我们也推荐尽可能使用 llvm.org上的官方编译版本 。确保下载匹配你操作系统的压缩包。
我们 强烈建议避免使用 系统自带的 libclang 或 clangd ,为保证万无一失,使用上游提供的预编译 libclang 。
编译 YCM 所需的 ycm_core 库 。这个库是 YCM 用于获取快速补全的 C++ 引擎。
你需要安装
cmake,以生成所需的 makefile 。 Linux 用户可以使用包管理器(Ubuntu用sudo apt-get install cmake),其他用户可以从 cmake 项目网站 下载安装 。 Mac 用户也可以通过 HomeBrew 执行 brew install cmake 来安装。在 Unix 系统上,你需要确保安装 Python 头文件。 Debian 系的 Linux 发行版使用
sudo apt-get install python-dev python3-dev命令。在 Mac 上这些文件是现成的。在 Windows 系统上,你需要下载安装 Python 2 或 Python 3 。根据你的 Vim 架构来选择对应版本。你还需要 Microsoft Visual C++ (MSVC) 来编译 YCM 。你可以通过安装 Visual Stidio 来获取它。 MSVC 14 (Visual Studio 2015) 和 15 (2017)是官方支持的。
此处我们假设你用 Vundle 安装了 YCM ,意味着顶层 YCM 路径在
~/.vim/bundle/YouCompleteMe。创建一个新目录用于存放编译文件。执行以下命令:
cd ~ mkdir ycm_build cd ycm_build
现在我们需要生成 makefile 。如果你 不 在意 C 系语言支持,也不打算使用 实验阶段的 基于
clangd的 completer ,在ycm_build目录下执行:cmake -G "<generator>" . ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp其中
<generator>在 Unix 系统上是Unix Makefiles,在 Windows 上则是以下之一:Visual Studio 14 Win64Visual Studio 15 Win64
如果你的 Vim 架构是 32 位,就去掉
Win64。如果想使用系统版本的 boost 库,你可以给 cmake 加上
-DUSE_SYSTEM_BOOST=ON。在一些系统上,如果(cmake)捆绑的 boost 不能开箱即用,这个参数会比较有用。注意: 我们 强烈建议不要使用 系统版本的 boost ,减少不必要的风险。
如果你 在意 C 系语言的语义支持,并且想使用 libclang 作为驱动而非 实验阶段 的基于
clangd的 completer, 那么你执行cmake的命令会变得更复杂一点。我们假设你按照第3步从 llvm.org 下载了 LLVM+Clang 的二进制包,而且把压缩文件解压到了~/ycm_temp/llvm_root_dir(里面包含bin,lib,include等目录)。在 Windows 系统上,你可以使用 `7-zip <7-zip_>`_ <7-zip_> 来解压 LLVM+Clang 的安装文件。注意: 这 仅仅 针对 下载 的 LLVM 二进制包生效,而非自己编译的 LLVM !如果使用的是自己编译的 LLVM ,查看下文的
EXTERNAL_LIBCLANG_PATH。在
ycm_build路径下执行:cmake -G "<generator>" -DPATH_TO_LLVM_ROOT=~/ycm_temp/llvm_root_dir . ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp
其中,
<generator的替换如前所述。配置文件生成之后,使用如下命令来编译库文件:
cmake --build . --target ycm_core --config Release
其中,
--config Release是给 Windows 系统用的,在 Unix 系统上會被忽略。如果你想使用系统版本的 libclang ,在 cmake 命令中用
-DUSE_SYSTEM_LIBCLANG=ON这个 flag 来 替换-DPATH_TO_LLVM_ROOT=...。注意: 我们 强烈建议不要使用 系统版本的 libclang ,请选择上游发布的二进制文件,以减少不必要的风险。
你也可以强行使用自定义的 libclang 库,传入
-DEXTERNAL_LIBCLANG_PATH=/path/to/libclang.so即可(库文件在 Mac 上后缀为.dylib)。再次声明,这个 flag 是用来 替换 其他的 flag 。 如果你使用的是从源码编译的 LLVM ,你就需要使用这个 flag 。如果你编译时用到了 clang 支持,那么
cmake命令也会为你把libclang.[so|dylib|dll]放到YcmCompleteMe/third_party/ycmd路径下( YCM 工作时会用到它)。如果你 在意 C 系语言支持,而且希望使用 实验阶段的 基于 clangd 的 completer ,那么你需要在
vimrc中加上:let g:ycm_use_clangd = "Always" let g:ycm_clangd_binary_path = "/path/to/clangd"
用你在第三步的下载地址来替换 /path/to/clangd 。
这一步是可选的。
为了更好的 Unicode 支持以及更好的正则表达式性能,编译 regex 模块。步骤类似于编译
ycm_core库:cd ~ mkdir regex_build cd regex_build cmake -G "<generator>" . ~/.vim/bundle/YouCompleteMe/third_party/ycmd/third_party/cregex cmake --build . --target _regex --config Release
其中
<generator>同前文所述。按照需要,配置其他语言支持:
C# 支持:安装 非 Windows 平台的 Mono 。 切换到
YouCompleteMe/third_party/ycmd/third_party/OmniSharpServer目录,执行:msbuild /property:Configuration=Release /property:Platform="Any CPU" /property:TargetFrameworkVersion=v4.5
在 Windows 上,确保 msbuild 在你的 PATH 环境变量里 。
Go 支持:安装 Go ,并将其添加到环境变量路径中。切换到
YouCompleteMe/third_party/ycmd/third_party/gocode执行go build。JavaScript 和 TypeScript 支持:安装 Node.js and npm ,切换到
YouCompleteMe/third_party/ycmd执行npm install -g --prefix third_party/tsserver typescript。Rust 支持:安装 Rust ,切换到
YouCompleteMe/third_party/ycmd/third_party/racerd执行cargo build --release。Java 支持:安装 JDK8 (version 8 required) 。下载 binary release of eclipse.jdt.ls 然后解压到
YouCompleteMe/third_party/ycmd/third_party/eclipse.jdt.ls/target/repository。注意:这个方法不推荐大部分用户使用,只支持愿意尽情折腾的高级用户和 YCM 开发者。 请使用
install.py来开启 java 支持。
搞定。查阅 用户指南 了解 YCM 的用法。不要忘记,如果你需要 C 系语言的补全引擎正常工作,则需要对 YCM 提供你的项目的 compilation flags 。这些都可以在用户指南中找到。
YCM 拥有健全的默认配置,但你可能依然想要看看可选的配置细节。基于谨慎考虑,一些有趣的配置默认为关闭状态,而你可能想要开启它们。
特性速览¶
通用(所有语言)¶
- 极快的基于标识符的 completer ,包含 tags 文件和语法元素
C系语言(C,C++,Objective C,Objective C++,CUDA)¶
翻译待续