将Vim打造成Python快速开发环境(一)

一直以来博主都是用阳春版的Vim来撸Python的,vimrc里只有些配色、键位、tab设置之类的小功能。中间也被安利过一些高大上的IDE,试用过JetBrains PyCharm CE、Wing IDE和eclipse+pydev,感觉这些软件里诸如code navigation,refactor,documentation这些功能的确非常强大,但是IDE的工作模式始终为我所不喜:本来可以快速开始干活的,非要经历等个好几秒钟(甚至好几分钟如果是公司的PC)打开软件,新建project,选择interpreter,取个名字,选个目录,添加文件……这一系列动作以后,一开始想的什么已经全然不记得了。我们使用Python的一大理由就是人生苦短我用Python能快速抓住灵感,立刻动手建模。需要Python日常处理的问题有可能一个小脚本就解决了,这种情况最好用的工具其实是文本编辑器。只有当问题解决了,灵感抓住了,原型建立起来了之后,我们发现需要进一步完善,或者可以修改以增强通用性,或者需要发布给别人使用时,才需要动用到IDE。所以说呢,在博主看来,类似Vim的,具备基本到高阶代码编辑功能,可以快速打开先写程序再保存的文本编辑器才是能让你第一时间进入需要处理问题的领域绝佳的工具。

好吧,吐槽结束。本文将假设您跟我类似,是一位有经验的Vim用户,能熟练运用C-w、C-v、m、q等较为高阶的功能,却很少折腾配置(所以这篇博文还能对您有些价值)。这样的话,您可能会发现,当Python文件大于500行,import的module多于10个且有些不是很熟悉之后,用Vim所提升的那部分工作效率,会被不停地查文档给降了下来。而您跟我一样,又觉得在源代码小于5000行的情况下用IDE简直是杀鸡用牛刀,所以对500到5000行的活儿找不到合适的工具这件事非常苦恼。这样的话,就跟我一起开始折腾吧。

编译64-bit的Vim

首先呢,由于有的Vim插件使用了Python(比如等会我们要用到的python-mode),我们的Vim必须支持Python。如果您跟我一样从来都是从Vim官网的下载页下载Vim的话,这个官方编译版本已经附带了Python支持,只是这个Vim是32位的。用:version命令可以看到Vim的版本和编译选项,如下图。

将Vim打造成Python快速开发环境(一)

使用命令:echo has('python')可以看到是否运作正常。但是很不幸,由于种种原因博主使用了Anaconda的64-bit套装,输入命令:echo has('python')显示的是 0。Vim官网并未提供编译好的64位Vim安装文件,只提到如果需要64位支持请使用alternative distribution,而官网给出的64位第三方发布版本页面已经申明停止维护(汗),并把博主带到了这里。看来看去,这些第三方发布的版本无非是集成了patch,既然这样,我们为何不按自己的要求编译一个最适合自己的版本呢?

然后博主找到了尹良灿先生博客上的这篇文章,试验了一下,发现编译Vim其实非常简单。

工作环境

我们需要patch,C编译器,资源编译器,make等整套工具以及一个shell,这里博主使用的是msys64,也就是新的mingw和msys的64位版。(关于msys64的安装和配置,博主后面有时间会再说明。)

下载Vim源代码和补丁

首先要下载Vim的源代码和补丁,鉴于国内的网络连Vim官网FTP简直慢到令人发指,我们还是用中科大的Vim镜像(顺便称赞一下中科大、北理工等高校和机构,他们真是国内开源事业的基石啊!)

mkdir ~/makevim
cd ~/makevim
wget -c http://mirrors.ustc.edu.cn/vim/pc/vim74src.zip
wget -c http://mirrors.ustc.edu.cn/vim/pc/vim74rt.zip
unzip vim74src.zip
unzip vim74rt.zip
mkdir patches
cd patches
wget -c -r -np -nd -e robots=off https://mirrors.ustc.edu.cn/vim/patches/7.4/
cd ..
tar cvf patches.tar patches/

打包patches其实没啥意义,是为了万一弄错好备用,因为下载778个补丁文件真的有点麻烦(笑)。

给源代码打补丁

接下来就是把这778个补丁打进源代码,确保cwd是~/makevim/vim/vim74,然后使用下面的命令。

cd vim/vim74
for file in ../../patches/*; do patch -f -s -Np0 -i $file; done

由于我们下载了所有的补丁文件,里面包含了对其他系统(如OS/2什么的)的补丁,如果只是

patch -Np0 -i <patch_file>

的话,中间patch会因为找不到文件频繁提问让我们skip。所以这里直接加上-f -s选项,就是为了省下敲键盘的时间。

开始编译

补丁打好之后就可以开始编译了。用下面的make命令就可以。博主不会使用Ruby、Perl或者Lua(电脑上也没有装,也不知道缺少了这些会怎么样,反正要的时候再编译一遍也很容易)Python也只用2.7,所以这里就没加上这些语言的支持(如果您需要的话,也可以很容易添加)。

make -f Make_cyg_ming.mak CC=x86_64-w64-mingw32-gcc RC=windres ARCH=x86-64 PYTHON=/c/Users/NicholasYF/Anaconda PYTHON_VER=27 DYNAMIC_PYTHON=yes -j5 GUI=yes STATIC_STDCPLUS=yes OLE=yes FEATURES=HUGE USERNAME=NicholasYfZhou USERDOMAIN=msys64

编译速度还算快,好了以后我们得到gvim.exe等文件,就算完成了。由于编译选项里已经指定了Python的目录,所以这一次用:version命令我们可以看到:

将Vim打造成Python快速开发环境(一)

看到Included patches: 1-778了吗?第一步即将大功告成!

需要命令行vim.exe的话,还可以改一下编译开关GUI=no,再make一下。如果要集成到Windows系统,先移动几个文件:

mv *.exe ..
mv GvimExt/gvim.dll ..

再以管理员身份运行~/vim/vim74/install.exe,选择d,install.exe将会在桌面和开始菜单建立快捷方式,在windows目录建立批处理文件,并将“Edit with Vim”集成到右键菜单。


你可能感兴趣的:(python,vim)