一直以來博主都是用陽春版的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的,具有基本到高階代碼編輯功能,能夠快速打開先寫程序再保存的文本編輯器纔是能讓你第一時間進入須要處理問題的領域絕佳的工具。php
好吧,吐槽結束。本文將假設您跟我相似,是一位有經驗的Vim用戶,能熟練運用C-w、C-v、m、q等較爲高階的功能,卻不多折騰配置(因此這篇博文還能對您有些價值)。這樣的話,您可能會發現,當Python文件大於500行,import的module多於10個且有些不是很熟悉以後,用Vim所提高的那部分工做效率,會被不停地查文檔給降了下來。而您跟我同樣,又以爲在源代碼小於5000行的狀況下用IDE簡直是殺雞用牛刀,因此對500到5000行的活兒找不到合適的工具這件事很是苦惱。這樣的話,就跟我一塊兒開始折騰吧。
python
首先呢,因爲有的Vim插件使用了Python(好比等會咱們要用到的python-mode),咱們的Vim必須支持Python。若是您跟我同樣歷來都是從Vim官網的下載頁下載Vim的話,這個官方編譯版本已經附帶了Python支持,只是這個Vim是32位的。用:version命令能夠看到Vim的版本和編譯選項,以下圖。git
使用命令:echo has('python')能夠看到是否運做正常。可是很不幸,因爲種種緣由博主使用了Anaconda的64-bit套裝,輸入命令:echo has('python')顯示的是 0。Vim官網並未提供編譯好的64位Vim安裝文件,只提到若是須要64位支持請使用alternative distribution,而官網給出的64位第三方發佈版本頁面已經申明中止維護(汗),並把博主帶到了這裏。看來看去,這些第三方發佈的版本無非是集成了patch,既然這樣,咱們爲什麼不按本身的要求編譯一個最適合本身的版本呢?github
而後博主找到了尹良燦先生博客上的這篇文章,試驗了一下,發現編譯Vim其實很是簡單。shell
咱們須要patch,C編譯器,資源編譯器,make等整套工具以及一個shell,這裏博主使用的是msys64,也就是新的mingw和msys的64位版。(關於msys64的安裝和配置,博主後面有時間會再說明。)
vim
首先要下載Vim的源代碼和補丁,鑑於國內的網絡連Vim官網FTP簡直慢到使人髮指,咱們仍是用中科大的Vim鏡像(順便稱讚一下中科大、北理工等高校和機構,他們真是國內開源事業的基石啊!)windows
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,而後使用下面的命令。eclipse
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命令咱們能夠看到:
看到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」集成到右鍵菜單。