很多人拿到一台新的 Centos 服务器,第一件事就是想在上面写 Python 脚本。但系统自带的 Vim 对 Python3 的支持往往不够,连语法高亮都乱七八糟,更别说代码补全和格式化。这其实是 Centos 为了保持系统稳定而做的保守配置,并不是 Vim 本身不行。我花了挺长时间摸索出一套比较顺手的配置方案,今天直接分享出来。

如何让 Centos 的 Vim 识别 Python3

Centos 默认安装的 Vim 往往只支持 Python2,这对现在基本上都用 Python3 的开发者来说非常难受。你打开一个 .py 文件,Vim 可能根本不知道这是 Python3 的语法,更别提版本识别了。

第一步先要确认你当前的 Vim 是否支持 Python3。直接在终端输入 vim --version | grep python,看到结果里有 +python3 就说明支持,如果是 -python3 或者只显示 +python 那就是只有 Python2。我见过不少 Centos7 的系统都是后者,这时候就得重新安装 Vim。

centos vim python3_centos vim python3_centos vim python3

安装支持 Python3 的 Vim 其实很简单,用 EPEL 源能省很多事情。先装 EPEL:yum install epel-release,然后直接安装新版的 Vim:yum install vim-enhanced。装完再检查一下版本,基本就能看到 +python3 了。如果还是不行,那就得用源码编译,但那太折腾了,一般用不到。

Centos 安装 Python3 和 Vim 的兼容性问题

很多人在这里栽跟头。Centos 自带的 Python 版本非常老,默认是 Python2.7,而且系统的一些核心工具(比如 yum)依赖这个版本,直接卸载会出事。所以装 Python3 的正确做法是让它和 Python2 共存。

我推荐用源码安装 Python3,因为 Centos 的官方源更新太慢,Python3.6 都算新的。下载源码包解压后,./configure --enable-optimizations 然后 make && make install。这一步时间比较长,可以喝杯水等着。装完以后 Python3 会安装到 /usr/local/bin 下面,不会影响系统自带的 Python2。

centos vim python3_centos vim python3_centos vim python3

关键点来了,Vim 编译的时候需要指定 Python3 的路径。如果你是用 yum 安装的 Vim,它默认会去系统路径找 Python。但如果你自己编译 Vim,记得加 --enable-python3interp=yes --with-python3-command=python3 这两个参数。不然编译出来的 Vim 依然不认识 Python3,那就白忙活了。

Vim 配置 Python3 开发环境的插件推荐

Vim 本身只是个编辑器,想要好用的 Python 开发体验全靠插件。但 Centos 的网络环境有时候不太稳定,装插件经常超时,所以选插件要讲究,别选那些动不动就几百兆的。

我建议先装上 Vundle 或者 vim-plug 来做插件管理。vim-plug 更轻量centos vim python3,对于 Centos 这种资源有限的服务器环境特别友好。装好管理器之后,插件方面我推荐以下几款,都是经过实战检验的:

centos vim python3_centos vim python3_centos vim python3

vim-python-pep8-indent:专门为 Python 做的缩进插件,PEP8 标准,不用自己调空格

jedi-vim:基于 Jedi 的补全插件,补全速度很快,不会卡顿

syntastic:语法检查插件,写错了直接标红,省得运行时报错再回头找

vim-flake8:代码风格检查,强迫症必备

centos vim python3_centos vim python3_centos vim python3

这些插件在 Centos 上安装基本不会有兼容性问题centos vim python3,因为它们依赖的都是 Python3 的标准库,不需要额外的系统包。装完之后在 .vimrc 里加几行配置,把补全快捷键改成自己顺手的,基本就能用了。

写 Python 代码时 Vim 常用操作与技巧

环境搭好了,代码怎么写更顺手,这也是很多人忽略的。Centos 服务器上一般不用鼠标,Vim 的操作效率决定了你写代码的速度。

我比较推荐几个操作习惯。第一,用 :sp 或者 :vsp 分屏,一边写代码一边看测试结果,不用来回切换。第二,学会用 Ctrl+nCtrl+p 补全,jedi-vim 装好之后这两个键能极大提升速度,比打全名快多了。第三,用 :!python3 % 直接在 Vim 里运行当前文件,看到输出结果再按回车回到编辑界面,这种即时反馈在写小脚本时特别爽。

centos vim python3_centos vim python3_centos vim python3

还有个技巧是设置自动补全括号和引号,这个只需要在 .vimrc 里加几行代码就能实现。很多人觉得这是小事,但写 Python 代码时括号嵌套很常见linux漏洞扫描,自动补全能省掉不少回头补括号的时间。另外,把 Tab 键设置为 4 个空格,并且在退出插入模式时自动把空格转成正确的缩进,这个配置也很实用。

用顺手之后你会发现,在 Centos 上写 Python 根本不需要装什么 PyCharm 或者 VS Codelinux 下载工具,Vim 足够应付日常的开发需求,而且响应速度比那些 IDE 快得多。服务器资源本来就不多,省下来的内存留给程序跑不是更好吗。

上面这些是我个人在 Centos 上折腾 Vim 和 Python3 的经验总结,配置过程中遇到的问题基本都覆盖到了。如果你按照这个流程走下来还是遇到报错,多半是 Python3 的路径没指对,检查一下环境变量和 Vim 的编译参数就行了。环境搭好之后,剩下的就是尽情享受在命令行里写 Python 的快感。

Tagged:
Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复