从上周开始我就开始折腾 ,搞了一下 vim ide for python & go,我将整个搭建的过程整理成本篇文章分享出来,本篇是 python 版本的保姆级教程,实际上我还写了 go 版本的,有想看的可以本篇文章点个赞,我下篇就发
一说到 ide,总有人会因 which one is 世界上最好的编辑工具 而吵得不可开交,但本文不会涉及、也不想误导大家,我相信不同的人、不同的使用场景都有着有不同的最优解,世界上没有一招通吃的编辑器。
如果是在桌面端,pycharm 和 vs code 已经做得足够优秀,很难再有第三个编辑器可以与之匹敌。
但若要说在服务端?似乎没得选,vim 几乎是你唯一的选择。
vim 是极具生产力的工具,甚至在某些人的眼中,它是一个魔鬼般的编辑器,之所以这么说,是因为它的上手门槛极高,学习曲线非常的陡。
一是,它是针对程序员群体的专有编译器,你需要额外学习并理解它的设计理念,并且需要记住非常多复杂的操作指令。
二是,对于工程项目代码,它并不是一个开箱即用的编辑器,需要你安装大量的插件、进行大量的配置才能成为一个称手的 ide 工具。
之所以,我使用 vim 作为开发的工具,原因有四:
直接:正常本地 ide 编码完后,要上传远程服务端进行编译及测试,比较麻烦,我直接在 ssh 服务端进行编码更为直接。
省心:多种语言不用再安装多个专有的编辑器,比如 pycharm、goland 等,而且不用再为各种付费软件破解劳心费力。
方便:提高 ipad 的生产力,外出不带电脑也可以在线写代码,省得每次都带个重重的电脑。
装逼:你不觉得挺酷的吗?(逃...
如果你对 vim 操作一无所知,那么请先去了解一下 vim 的日常使用方法,否则以下内容并不适合你。
本文是在 mac 环境下进行操作演示的,但同样适用于 linux 环境(少许差异,我会在相应位置点出),如果你只有 windows 系统,可以使用 gvim。
在开始安装配置之前,先说一下本文的一个整体思路:
准备运行环境:安装 python 或者 go 环境
准备vim 版本:使用 vim 8.2 的最高版本
插件安装环境:插件都在 github 及其他外网,需要你配置一些代理
插件安装:一键批量安装插件
插件配置:插件安装上后,要进行一些配置才能好用
插件使用:演示每个插件的使用方法
vim 原生对 python 提供了支持,当你安装 8.2 版本的 vim 时,会自动安装 python ,只不过该安装版本并不是你需要的版本,不过不要紧,vim 运行使用的 python 版本是可以配置的。
我这边使用的版本是 python 3.10.0
正常的 mac 或者 linux 机器都会自带 vim 工具,只不过可能版本比较低,如果使用这些版本的 vim ,后面有些插件会安装不上或者使用不了,就比如 <code>youcompleteme</code> 这个非常重要的插件,如果你不使用 vim 8.1+ ,你每次用 vim 都会提示你,非常影响体验
这些插件已经持续更新了很多年,对于老版的 vim 不再提供支持这也可以理解。
如果你使用的 linux ,整个过程会顺畅很多,在这里我使用的是 centos 7.6 的 linux。
首先找到系统里安装的 vim 包有哪些,然后使用 <code>yum remove</code> 去卸载它
后面我会使用源码编译的方法去安装 vim 8.2,但编译需要安装如下这些基础依赖
从 github 上下载源代码
进入 <code>vim/src</code> 目录执行如下三个命令编译安装
不出意外的话,命令执行完成后,你只要再配置个软件链接,就可以正常使用 8.2 版本的 vim 了。
vim 本身提高的功能已经非常强大,但无奈上手难度实在太大,安装一些定制化的插件,能让整个 vim 界面管理与使用更加符合人类的直觉,降低使用门槛。
具体要安装哪些插件,还要是看你想把 vim 打造成什么样子?
这个倒不必闷着头空想,对照着桌面端的 ide 软件去抄作业就 ok 了嘛。
对于我个人来说,我日常使用 ide 最多的功能有:
自动代码补全
代码追踪跳转
静态代码检查
运行调试代码
全局搜索代码
项目代码书签
代码版本管理
代码高亮显示
工程项目的文件树
单文件代码结构树
可同时打开多文件
markdown 实时预览
那我就对照这个功能去找对应的插件即可
youcompleteme:提供自动代码补全与代码追踪跳转
auto-pairs:自动补全括号的插件,包括小括号,中括号,以及花括号
nerdtree:提供工程项目的文件树、支持书签功能
vim-nerdtree-tabs:可以打开多个代码文件,使 nerdtree 的 tab 更加友好些
nerdtree-git-plugin:可以在导航目录中看到 git 版本信息
tagbar:可以查看当前代码文件中的变量和函数列表的插件,并切换和跳转到代码中对应的变量和函数的位置
vim-airline:vim状态栏插件,包括显示行号,列号,文件类型,文件名,以及git状态
vim-gitgutter:可以在文档中显示 git 信息
vim-one:代码配色方案
markdown-preview.vim:markdown 预览支持
mathjax-support-for-mkdp:markdown 数学公式预览支持
vim-godef:go 中的代码追踪,输入 gd 就可以自动跳转
fatih/vim-go:静态检查等一系列 go 相关工具
ultisnips / vim-snippets:自动生成 代码块
那么如何安装这些插件呢?
很简单,你只要使用 vi 在你的 <code>~/.vimrc</code> 文件中,贴入下面这段配置到文件末尾
然后输入命令 <code>:wq</code> 保存并退出 vi。
安装插件的管理工具有很多,比如 vundle,vim-plug 等。
vundle是一款非常出名且历史悠久的vim插件管理工具。但随着安装的vim插件越来越多,使用vundle来管理这些插件时效率变得越来越低,vim启动耗时也越来越大。
而vim-plug是一款非常轻量又高效的vim插件管理工具。它支持全异步、多线程并行安装插件,支持git分支、标签等,可以对插件进行回滚更新、还支持按需加载插件(on-demand loading),可以指定对特定文件类型加载对应vim插件,大大加快了vim启动时间。
因此我这里会使用 vim-plug 这个管理工具,使用如下命令就可以安装 <code>vim-plug</code> 插件管理工具
接着请重启一下你的终端,保证重新初始化,不然等你后面执行 <code>pluginstall</code> 的时候, 有可能报该命令不存在。
重启完终端后,输入再次打开 <code>vim</code> 输入 <code>:pluginstall</code> 开始安装过程
如果你没有网络问题(不就科学那点事嘛),那么安装会很顺利。。
输入 <code>:plugstatus</code> 就会看到所有的插件都安装 ok。
上面的插件安装,其实做的事情也比较简单,就是把 github 上的仓库拉取到本地的 <code>~/.vim/plugged</code> 目录
一般情况下,这些插件都是开箱即用的,不会有复杂的依赖,但唯独一个插件比较特殊 ,它就是 <code>youcompleteme </code> ,它号称是最难安装的 vim 插件。
我在本地的 mac 机器上装了两个晚上,才算把所有的依赖都解决完成,但在 linux 上就比较顺利。
具体的安装步骤是
进入 <code>~/.vim/plugged/youcompleteme</code> 插件目录,修改 <code>.gitmodules</code> 中的 github.com 为 镜像网站 hub.fastgit.org
然后安装一级依赖:<code>git submodule update --init</code>
一级依赖正确安装后,再修改 <code>third_party/ycmd</code> 目录下所有依赖的<code>.gitmodules</code> 中的 github.com 为 镜像网站 hub.fastgit.org
然后递归安装其依赖包:<code>git submodule update --init --recursive</code>
最后执行 <code>python3 install.py --all</code> ,--all 会安装该插件支持的所有语言功能。
在 mac 上安装的过程中,遇到了相当多的问题,还涉及到了改 youcomplete 的代码,最后才得以正常安装下去,可能你在安装的过程中也会遇到类似的问题,如果有问题,欢迎在评论区留言,我会尽力解答。
上面安装插件的过程其实会去 github 上下载对应的插件,但由于各种不可描述的原因, 在大陆的服务器上访问 github 是非常慢,甚至是不能访问的。
我在没有进行任何网络设置的情况下, 20 个插件,居然没有一个安装成功。
因此在这里,你得先想办法,让你的服务器能访问以正常速度访问 github,至于怎么做,有些黑科技我这里不方便展开细说,就给大家介绍一种可以公开、又非常有效的方法。
修改 <code>~/.vim/autoload/plug.vim</code> 将
改成
将这行
然后再进入 vim 执行 <code>:pluginstall</code> 就可以了
大部分插件安装好后,可以立马使用,但有一些插件需要再进行一些配置才能用得更称手。
由于配置非常多,我这里就不直接贴出来了,有感兴趣的加我v:hello-wbm,找我要一下配置表。
youcomplete
使用 ide 最基本的诉求,不就是能够在你编码的时候,自动给出提示,然后自动补全嘛,vim 有了 youcomplete 的加持后,也可以 100% 还原桌面端的编码体验。
nerdtree
打开文件后,使用 f9 或者输入 <code>nerdtreetoggle</code> 就会打开侧边栏的文件树,这是 <code>nerdtree</code> 给我们提供的便利。
tagbar
打开 python 文件后,使用 f9 或者输入 <code>:tagbar</code> 就可以打开 <code>tagbar</code> 窗口,在这个窗口里你可以看到该文件的所有结构体、函数、变量等,这些通通可以称做 tag,当你定位到某个 tag 时,直接回车就可以跳转到左边代码窗口的位置。
vimgrep
vimgrep 可用于工程项目的代码查找,对于经常阅读源代码的同学是必不可少的利器,它是 vim 自带的工具,非常之强大。
用完 vimgrep 查找后,正常情况下,不会有任何的反馈,如果你需要查看搜索的结果,并跳转到对应的位置,可以使用 quickfix ,只要输入 <code>:cw</code> 或者 <code>:copen</code>
使用 vim 写完代码后,想像 pycharm 一样直接快捷键运行代码,需要你在 <code>.vimrc</code> 中写入如下的配置。
这段配置,不仅包括 python ,还有 bash 和 golang
配置完后,使用 <code>f5</code> 就可以直接运行当前的脚本。
如果你和我一样,有自己的服务器,那么你根据上面的步骤把 vim 配置好后,就可以在 ipad 上通过 ssh 连接服务器进行代码的编写了。
如果你没有服务器,只要可以加我v: hello-wbm,我就送你一台一年期的阿里云服务器,名额有限,我只能说先到先得。
刚好我手上有一台 2020 款的 ipad pro,平时也是用来视频居多,实在有点对不起 pro 这个配置,有了 vim 这个神器,生产力 up 了一点点。。
有必要说明一下,之所以花了五天这么长的时间,其实我是把我手上的几台电脑,包括服务器全部配置了 vim ide,不同的机器,遇到的问题都有点不太一样,其中在我的 mac 上,遇到的问题最多,折腾的时间最长,其中有些问题,我 google 不到答案,最后是看了代码,修改了部分代码才跑下去的。
另外,对于 vim 来说,最重要的就是 .vimrc 文件,上面的讲解可能我会漏了一些配置讲解,如果你发现使用不是那么顺利,可以下载我的 .vimrc 文件:https://wwe.lanzoui.com/i9gd5vrzufi
本文是 python 版本的 vim ide 搭建指南,代码演示也基本是用的是 python 代码,根据文中我的思路一步一步操作,你可以搭建属于自己的一套在线 ide 环境。
我不仅写 python 代码,还写一些 go 的代码, vim 对于 python 原生提供了比较多的支持,而相比之下,go 却要安装更多的插件才能达到不错的编码体验,但由于本号大多数是 python 开发者,这一部分内容,我会再写一篇 vim for go 的文章。感兴趣的朋友给我可以给我评论区说一下,我会发给你地址。
好了,以上就是本篇文章的全部内容,如在安装配置上有任何疑问,欢迎评论区指出~
原文首发于个人博客:https://iswbm.com/591.html
双十一快到了,阿里云也开始搞活动了,刚好我这边可以带大家白piao 阿里云的服务器。
说白了就是大家 可以一分钱不花,就可以领到服务器,规格是 2c2m(2vcpu 2g memory) 的机器。
昨天在朋友圈发了下,现在已经有 400 人报名参与了,今天借这篇文章再说一下,有想参加的朋友,可以加我v(hello-wbm),带大家一起薅羊毛。
我在 『开源中国』写过很多的 python 相关文章,其中包括 python 实用工具,python 高效技巧,pycharm 使用技巧,很高兴得到了很多知乎朋友的认可和支持。
在他们的鼓励之下,我将过往文章分门别类整理成三本 pdf 电子书
pycharm 中文指南
《pycharm 中文指南》使用 300 多张 gif 动态图的形式,详细讲解了最贴合实际开发的 105个 pycharm 高效使用技巧,内容通俗易懂,适合所有 python 开发者。
在线体验地址:https://pycharm.iswbm.com
python 黑魔法指南
《python黑魔法指南》目前迎来了 v3.0 的版本,囊集了 100 多个开发小技巧,非常适合在闲时进行碎片阅读。
在线体验地址:https://magic.iswbm.com
python 中文指南
学 python 最好的学习资料永远是 python 官方文档,可惜现在的官方文档大都是英文,虽然有中文的翻译版了,但是进度实在堪忧。为了照顾英文不好的同学,我自己写了一份 面向零基础的朋友 的在线 python 文档 -- 《python中文指南》
在线体验地址:https://python.iswbm.com