YCM快速安装(Ubuntu16.04 x64系统)
YouCompleteMe是Vim的一种快速的,模糊搜索的编译型代码补全插件。
Vim至少需要7.3.598版本,且需要python2、python3支持,Ubuntu 14.04版以上的Vim都可以。
在终端下运行$vim --version命令查看vim版本,版本太旧则需要重新编译安装Vim。
安装YCM需要安装Vundle插件。
注意:YCM是编译型插件。如果使用Vundle对YCM进行升级,ycm_core libirary APIs会有所改变(改变很少),YCM将通知你重新编译,你需要重新执行安装步骤。
安装开发工具CMake:
sudo apt-get install build-essential cmake安装Python头文件
sudo apt-get install python-dev python3-dev编译YCM, 需要C家族语言的语义支持:
cd ~/.vim/bundle/YouCompleteMe编译YCM, 无需C家住语言的语义支持:
./install.py --clang-completer
cd ~/.vim/bundle/YouCompleteMe以下是编译其他语言可用的支持和选项:
./install.py
C#:安装Mono,并添加--omnisharp-completer,然后运行./install.py。
Go:安装Go,并添加--gocode-completer,然后运行./install.py。
TypeScript:安装Node.js and npm,然后运行npm install -g typescript来安装TypeScript SDK。
JavaScript:安装Node.js and npm,并添加--tern-completer,然后运行./install.py。
Rust:安装Rust,并添加--racer-completer,然后运行./install.py。
要安装所有语言功能,请确保以下工具xbuild,go,tsserver,node,npm,rustc,andcargo已全部安装在你的环境变量中,然后运行:
cd ~/.vim/bundle/YouCompleteMe这样,就完成了。如何使用YCM请参考用户 指南部分。别忘了,如果你需要C家族语义补全,你需要提供YCM项目的编译标志。这些都在用户指南里。
./install.py --all
YCM 明确了它的默认选项,但你仍可以了解有什么可用的配置。有一些有趣的选项默认是关闭的,你可能想要打开它。
完全安装指南
这些步骤要让YCM在Unix操作系统和Windows上工作。
Windows用户请注意:我们假设你正运行cmd.exe命令提示符,需要的可执行文件在环境变量中。不要仅复制shell命令。用%USERPROFILE%取代~,并使用正确的Vim主目录,默认情况下vimfiles文件将代替.vim文件。
如果有任何问题请参阅FAQ。
注意:YCM是编译型插件。如果使用Vundle对YCM进行升级,ycm_core libirary APIs将会更改(更改的很少),YCM将通知你重新编译,你需要重新执行安装步骤。
请仔细阅读以下说明,每个字都读。
1.确保你的Vim至少是7.3.598版本,并已有python2或python3脚本支持。
在Vim里,键入:version 。首先看第二行到第三行输出;它应该显示VI IMproved X.Y,X.Y是Vim的版本。如果你的版本高于7.3,那就OK。如果你的版本是7.3,然后看下面的显示,Included
,其中Z是某些数字,这个数字需要是598或者更高。
patches: 1-Z
如果你的Vim版本太低,你需要从源码编译Vim。(别担心,这很简单,参见compile Vimfrom source)
在你确定你的Vim版本是7.3.598+之后,在Vim中键入:echo has('python') || has('python3')
,会输出1。如果是0,则需要安装有Python支持的Vim。
在Windows中,检查你的Vim架构是32位还是64位。这是至关重要的,因为它必须与Python和YCM架构相匹配。我们建议使用64位的Vim。
2.安装YCM需要Vundle(或者pathogen,但是Vundel更好)。
如果用Vundle的话,需要在vimrc中添加Plugin'Valloric/YouCompleteMe'
。
如果你不用Vundle安装,确定你已运行git submodule update --init --recursive
,检查过YCM包(Vundle将为你做这些)已取得YCM依赖。
3.这一步仅是为了支持C家族语言语义补全,否则是没有必要的。
下载最新版的libclang。Clang是一个可以编译C/C++/Objective-C/Objective-C++的开源编辑器。libclang提供了这些语言的YCM语义补全引擎所需要的能源。YCM的设计工作需要libclang 3.8版本或者更高。
你可以使用系统的libclang,如果你确定它的版本是3.8或者更高,否则不要。即使它是,我们建议使用官方的二进制文件llvm.org,确保你的系统下载了正确的存档文件。
我们强烈建议使用上层已编译的二进制文件代替系统的libclang。随机性事件可能导致崩溃,保存您的hassle并使用上层预编译的libclang。
4.编译YCM所需要的ycm_core
库。这个库是C++引擎,YCM用来快速补全。
你将需要安装cmake以生成所需要的makefiles文件。Linux用户可以在安装包管理器下安装cmake(sudo apt-get install cmake
) ,而其他用户可以从项目网站下载安装cmake。Mac用户可以通过Homebrew的brew install cmake安装。
在Unix操作系统中,确保你安装了Python头文件。在Debian-like Linux发行版中,运行
sudo apt-get install python-devpython3-dev
。Mac中已经存在了。
在Windows中,你需要下载安装Python 2 orPython 3。选择与你的Vim架构相对应的版本。你还需要Microsoft Visual C++ (MSVC)建立YCM,在安装Visual Studio获得它。MSVC 11 (Visual Studio 2012), 12 (2013), and 14 (2015)需要正版支持。
~/.vim/bundle/YouCompleteMe
里。
我们将创建一个新的文件夹存放生成的文件,运行以下命令:
cd ~现在,我们需要生成makefiles文件。 如果你不关心C家族语言的语义支持,在ycm_build目录下运行以下命令:
mkdir ycm_build
cd ycm_build
cmake -G "<generator>" . ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp<generator> 在Unix系统中是 Unix Makefiles,以下是Windows的Visual Studio生成器之一:
Visual Studio 11 Win64
Visual Studio 12 Win64
Visual Studio 14 Win64
如果你的Vim架构是32位,那么删除生成器的Win64部分。
想要使用系统的升级版,你需要用-DUSE_SYSTEM_BOOST=ON去cmake。在某些不能编译的系统升级版本中这是必须的。
注意:我们强烈建议不要使用系统的升级版代替捆绑的升级版。随机性事件可能导致崩溃,保存你的hassle并使用捆绑的升级版。
如果你关心的是C家族语言的语义支持,那么你的cmake将有一点复杂。我们假设您在第3步中从llvm.org下载了LLVM+Clang的二进制发行版,并且你解压存档文件到~/ycm_temp/llvm_root_dir
(包含bin
,lib
,include
等文件夹)文件夹下。在Windows中,你可以使用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的用户,你要使用-DUSE_SYSTEM_LIBCLANG=ON
去cmake代替
标志。-DPATH_TO_LLVM_ROOT=...
注意:我们强烈建议不要是用系统的libclang去代替上层已编译的二进制文件。随机性事件可能导致崩溃,保存你的hassle并使用上层预置的libclang。
你也可以强制使用自定义的libclang库,用-DEXTERNAL_LIBCLANG_PATH=/path/to/libclang.so
标志(在Mac上,库的后缀是.dylib)。此外,这个标志可以代替其他的标志,如果你从源码编译的LLVM,这个标志将被使用。
如果编译带有clang支持,运行cmake命令会将libclang.[so|dylib|dll]
文件放置在YouCompleteMe/third_party/ycmd
目录下(YCM需要它在那里)。
5.根据需要,设置对其他语言的支持:
C#:非Windows平台要安装Mono。Windows平台,在
YouCompleteMe/third_party/ycmd/third_party/OmniSharpServer
目录下运行msbuild /property:Configuration=Release
。其他平台上,用xbuild放置msbuild。Windows上,请确保构建工具msbuild在你的环境变量下。- Go:安装Go并添加到你的环境变量中。在
YouCompleteMe/third_party/ycmd/third_party/gocode
目录下运行go build。
TypeScript:像快速安装那样,运行和
npm install -gtypescript
后,成功安装Node.js and npm。- JavaScript:安装Node.js and npm。在
YouCompleteMe/third_party/ycmd/third_party/tern_runtime
目录下运行npm install--production
。
- Rust:安装Rust。在
YouCompleteMe/third_party/ycmd/third_party/racerd
目录下运行cargo build --release
。
这样,就完成了。如何使用YCM请参考用户指南部分。别忘了,如果你需要C家族语义补全,你需要提供YCM项目的编译标志。这些都在用户指南里。
YCM 明确了它的默认选项,但你仍可以了解有什么可用的配置。有一些有趣的选项默认是关闭的,你可能想要打开它。