您的位置:首页 > 编程语言

Vim代码补全插件——YouCompleteMe安装说明

2016-08-17 21:58 543 查看

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
./install.py --clang-completer
编译YCM,无需C家住语言的语义支持:
cd ~/.vim/bundle/YouCompleteMe
./install.py
以下是编译其他语言可用的支持和选项:C#:安装Mono,并添加--omnisharp-completer,然后运行./install.py。Go:安装Go,并添加--gocode-completer,然后运行./install.py。TypeScript:安装Node.jsand 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
./install.py --all
这样,就完成了。如何使用YCM请参考用户指南部分。别忘了,如果你需要C家族语义补全,你需要提供YCM项目的编译标志。这些都在用户指南里。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
patches: 1-Z
,其中Z是某些数字,这个数字需要是598或者更高。如果你的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,确保你的系统下载了正确的存档4000文件。我们强烈建议使用上层已编译的二进制文件代替系统的libclang。随机性事件可能导致崩溃,保存您的hassle并使用上层预编译的libclang。4.编译YCM所需要的
ycm_core
库。这个库是C++引擎,YCM用来快速补全。
你将需要安装cmake以生成所需要的makefiles文件。Linux用户可以在安装包管理器下安装cmake(
sudo apt-get install cmake
) ,而其他用户可以从项目网站下载安装cmake。Mac用户可以通过Homebrew的brewinstall 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,在安装VisualStudio获得它。MSVC 11 (Visual Studio 2012), 12 (2013), and 14 (2015)需要正版支持。这里我们假设你用Vundle安装了YCM。这意味着YCM的顶级目录是在
~/.vim/bundle/YouCompleteMe
里。我们将创建一个新的文件夹存放生成的文件,运行以下命令:
cd ~
mkdir ycm_build
cd ycm_build
现在,我们需要生成makefiles文件。如果你不关心C家族语言的语义支持,在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
目录下运行
gobuild。
TypeScript:像快速安装那样,运行和
npm install -gtypescript
后,成功安装Node.js and npm。JavaScript:安装Node.js and npm。在
YouCompleteMe/third_party/ycmd/third_party/tern_runtime
目录下运行
npminstall--production
。Rust:安装Rust。在
YouCompleteMe/third_party/ycmd/third_party/racerd
目录下运行
cargobuild --release
。这样,就完成了。如何使用YCM请参考用户指南部分。别忘了,如果你需要C家族语义补全,你需要提供YCM项目的编译标志。这些都在用户指南里。YCM 明确了它的默认选项,但你仍可以了解有什么可用的配置。有一些有趣的选项默认是关闭的,你可能想要打开它。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  vim linux YouCompljeteMe