Linux上配置Vim的YouCompleteMe插件:文本编辑更清爽和强大,并具有一定的IDE能力
本文最后更新于 2023年9月17日 上午
作者:Mintimate
博客:https://www.mintimate.cn
Mintimate’s Blog,只为与你分享
Vim&YCM
Vim的强大已经是毋庸置疑了。并且开源社区内大佬们十分活跃,满满的安全感^_^。
本文将介绍Vim如何编译安装,并支援Python,进而安装号称最难安装的Vim插件:YouCompleteMe。
以下为了方便,我简称为:YCM。配合它,可以让你的Vim文本编辑更强大和清爽,并具有一定的IDE能力。不能说完全媲美IDE,但是也算多了个不错的工具啦。
当然,如果你喜欢用emacs,同样十分OK啦。
Vim
Vim的安装和使用,我在之前的文章就已经介绍:
YCM
项目的地址,其实已经说得很详细,比如:
It has several completion engines built in and supports any protocol-compliant Language Server, so can work with practically any language.
之所以号称最难安装的Vim插件…… 我觉得主要是两个原因:
- 需要重新编译Vim并支援Python(推荐支援Py3)。
- 国内需要处理网络问题。
不过,本文都会帮你解决上述问题。不用担心啦~~
安装逻辑:
辅助视频
嘿嘿,做教程视频不易(B站根本不会推荐引流),请务必一键三连嗷~B站视频地址:https://www.bilibili.com/video/BV1gS4y1h78B
准备工具
嗯…… 只是配置一个Vim插件罢了…… 所以需要的工具:
- 服务器:一台Lighthouse(Linux系统,e.g. Debian、CentOS)
Windwos虽然也有Vim,但是我个人用Windows比较少,加上我没有Windows Server的服务器。这里不做演示。
如果你并没有Linux设备,需要一个Linux设备来练手,强烈推荐:
另外,为大家争取到优惠*(੭ˊᵕˋ)੭ଘ:
编译Vim
首先,我们SSH登录我们的Lighthouse服务器,如果不知道怎么SSH连接服务器,可以参考文章:
查看Vim版本:
1 |
|
目前(2022.05)我这台Linux自带的Vim版本为8.1.1401
;但是查看YCM的官网,目前最新YCM支援的版本为8.1.2269
:
所以,我们需要安装新版本的Vim。本文使用的方法是编译新版本Vim。
克隆Vim源码
首先,我们使用Git克隆Vim的最新源码,或者是分支版本。Vim的官方项目仓库地址:
这里我直接克隆最新master分支:
1 |
|
支援Python3
在编译安装Vim前,我们需要配置Python3,使其后续Vim能支援到Python3。方法很多,这里选择最简单的方法:软件包安装Python3和Python3-dev:
1 |
|
支援lua和正则
我们需要对C的外部lua库和正则表达式进行支持,所以我们需要:
1 |
|
支援Ruby(可选)
为了让我们的Vim也支援Ruby,我有时候会那Vim去编辑Reby。我们也事先用软件包安装一下:
1 |
|
configure配置
根据源码内configure
的配置选项:
我们支援Python3和Ruby,并安装到/usr/local/vim
(系统自带的vim保留着没动):
1 |
|
等configure配置
结束,我们就可以进行编译和安装。
需要注意:
- 不要支援Python2,否则YCM会无法调取Python(嗯…… 主要是难操作)
编译和安装
接下来我们开始编译和安装,我的Lighthouse是两个CPU,所以设置使用多线程编译:
1 |
|
Lighthouse的CPU性能强劲,配置个几十秒就好了。
之后是安装:
1 |
|
之后,查看我们的编译安装地址,即可发现我们编译安装的vim:
最后,我们配置到用户环境变量:
1 |
|
最后,查看Vim的版本,就是最新版本的Vim了:
并且,Python成功支援到:
1 |
|
Tips
建议编译好Vim后,在~/.vimrc
内加入:
1 |
|
Vim安装vim-plug
我们要安装YCM插件,手动配置是很麻烦的。所以,我们借助vim-plug去激活并管理我们的YCM插件(以及其他插件)。安装方法很简单。
在终端内:
1 |
|
如果vim-plug脚本因为网络问题下载不下来,可以本地下载后,拷贝里面内容并手动在Lighthouse上创建。
Plug换源
因为vim-plug默认使用GitHub作为插件的抓去地址,但是因为一些原因,中国大陆连接GitHub有点困难大家可以根据自己网络环境,选择换源。
换源的方法很简单,编辑我们刚刚下载的plug.vim文件:
1 |
|
搜索plug_url_format和git::@github,更改:
1 |
|
为
1 |
|
具体可以参考我以前写的教程:
为了让接下来的YCM能直接Git clone下来附加仓库,我们设置一下GitHub全局重定向:
1 |
|
这里使用的Fastgit对GitHub仓库进行重定向,如果Fastgit无法使用(也就是后续还是卡了),可以试试其他GitHub重定向。
有机会和大家说说怎么自建GitHub加速API(*≧ω≦)。
安装YCM
现在,我们可以借助vim-plug,给Lighthouse上的Vim安装YCM。编辑.vimrc
文件,添加YCM的项目地址:
1 |
|
追加:
1 |
|
之后,保存并退出后,再次进入.vimrc
后,执行:PlugInstall
:
在主仓库下载后,vim-plug
会帮YCM
根据.gitmodule
递归下载其附加仓库,比如:
如果卡某个仓库,比如:卡在下载mrab-regex
:
手动帮它Git clone,先直接Ctrl+C终止git:
之后,退出vim交互后,手动克隆子模块:
这里mrab-regex
是私人仓库,但是GitHub上也有仓库:https://github.com/mrabarnett/mrab-regex。我们使用GitHub上的代替,并继续YCM初始化:
1 |
|
最后,子仓库克隆结束,YCM前期仓库准备结束:
初始化
现在,我们需要进一步的安装,也就是初始化。进入YCM插件目录:
1 |
|
根据YCM项目官网介绍的编译参数:
执行:
1 |
|
其中:
--rust-completer
:支援Ruby;--cs-completer
:支援C++/C;--verbose
:启动详情日志输出;
本来我还想支援Java的…… 但是一是需要再配置JAVA_HOME,文章太长了……;二是,我平常还是用IDEA编辑Java比较多(・_・;
如果出现Cmake版本缺失或版本太低:
可以到cmake项目地址:https://cmake.org/download/,下载cmake并配置。比如:我配置cmake3.23.1
1 |
|
之后,回到YCM插件目录,执行安装脚本:
1 |
|
但是,如果你的Lighthouse,是大陆服务器且碰巧无法连接GitHub,这里会卡住的话:
这个时候,又要祭出换源大法了◡ ヽ(`Д´)ノ ┻━┻
观察YCM源码脚本可以知道,这个脚本写在:YCM插件模块/third_party/ycmd/build.py
内,我们编辑这个文件:
1 |
|
查找关键词:github
,把文件下载地址改成自己Lighthouse可以直接连接到的地址即可:
我是本地上次后,上传到我网站里并作为直链了。大家可以想想办法提供直接连接(比如:对象存储桶公开直链、Coding中继等);或者FastGit
之后,继续安装:
到此,我们的YCM就安装完成了。接下来是配置了。
配置YCM
给大家分享一下我的YCM配置,在.vimrc
内添加YCM全局配置:
1 |
|
之后,保存并退出。我们随便打开一个Python文件(普通文件也可以……),就可以自动代码提示和补全了:
额外插件
最后,再推荐插件:
- pangloss/vim-javascript:支援Vim,使Vim支持JavaScript的语法高亮和代码格式化。
- kien/rainbow_parentheses.vim:支援Vim,使Vim编辑文件内的括号,变为“彩虹色”。
- preservim/nerdtree:支援Vim,使Vim可以出现IDE的目录结构。
安装方法很简单,同样适用vim-plug
帮我们引用:
1 |
|
之后,和刚刚一样:保存并退出,之后重新进入并执行:PlugInstall
:
最后,再追加配置:
1 |
|
保存并退出,即可看到效果:
这样,Vim就具备一定的 IDE功能了。
END
到此,YouCompleteMe和它的“好朋友们”就安装并配置完成了。
你也可以配合ZSH,获得更好的Shell体验:
参考教程:
有些人可能会说,用Vscode、IDEA之类的编辑器或者集成开发工具不好么?当然好,而且很方便;但是Vim安装YCM,是让你的Vim支持更多功能;有时候,我们可能需要修改Python脚本内某些数据,直接在Lighthouse服务器上用Vim就可以直接操作,亦或者直接编辑Nginx文件,还是挺方便的。
多一个方法,多条路;可不是让你丢弃开发环境,全部使用Vim进行开发哦。
这篇文章这么长…… 会不会劝退很多人呢?那就先点赞、收藏,以后再看吧~~~