標籤:外掛程式 vim plugin
今天同事小夥伴突然告訴我說,他用的編輯器sublime3導致筆記本突然卡頓,看當時記憶體吃到了30G,而他筆記本總共才8G記憶體,懷疑是記憶體流失,果斷換回了原來用的PyCharm。因為我也用PyCharm學習python,深知它的記憶體使用量基本也在1G以上,聽到他這個訊息,我決定還是換回我一直習慣的vim,畢竟“編輯器之神”並非浪的虛名。
所謂打造,其實就是找一些適合自己的外掛程式,先簡單總結一些,我親測過的幾個外掛程式。開始之前先說明一點,這裡提到的幾個外掛程式都是非常強大和有名氣的,但所謂適合自己的才是最好的,文中所說的缺點只是相對個人而言的感受,並不適用所有人。分享出來只是為給大家在選擇時做個參考。謝謝~
1.vim外掛程式管理器
vim-pathogen VS Vundle.vim:
這兩個外掛程式都可謂是vim的神器,用來進行vim的外掛程式管理。pathogen配置好之後使用方便之處在於只需要把你下載的vim外掛程式放到~/.vim/bundle(也可自訂)目錄下即可,而vundel每次需要更改vimrc檔案,不過vundel的方便之處在於更改完vimrc檔案之後,可以直接在vim裡使用:PluginInstall來進行外掛程式的一鍵安裝,原理就是自動從GitHub等源上自動下載。
這裡我選擇的是vundle,因為可以一眼從設定檔看出我安裝了哪些外掛程式,不需要的外掛程式直接注釋掉即可。如Plugin部分就是我安裝的外掛程式,一目瞭然。
650) this.width=650;" src="https://s1.51cto.com/wyfs02/M02/8F/01/wKioL1jRSBXi1RwqAAKCfHOONeA780.png-wh_500x0-wm_3-wmp_4-s_2597687534.png" title="Snip20170321_24.png" alt="wKioL1jRSBXi1RwqAAKCfHOONeA780.png-wh_50" />
2.python支援
既然是寫python,那麼必然要進行python的擴充,這裡我測試了三個比較知名的python外掛程式。
Jedi-vim - Vim bindings for the Jedi auto-completion library for Python.
Python-mode - An all in one plugin for turning Vim into a Python IDE.
YouCompleteMe - Includes Jedi-based completion engine for Python.
對我來說,自動補全,和文法檢測是最終選擇了使用jedi-vim。
簡單說下自己的直觀感受:
python-mode:
優點:能夠自動補全,內建python文法檢測和程式碼摺疊功能等功能,很強大。
缺點:自動補全時順帶顯示函數的協助資訊,頁面顯示不夠簡潔、美觀;文法檢測功能一般。
以下是樣本:
650) this.width=650;" src="https://s4.51cto.com/wyfs02/M00/8F/04/wKiom1jRTCTi9pa9AALYKjuxnSc471.png-wh_500x0-wm_3-wmp_4-s_1690894373.png" title="Snip20170321_26.png" alt="wKiom1jRTCTi9pa9AALYKjuxnSc471.png-wh_50" />
YouCompleteMe:
優點:自動補全,介面簡潔,支援多語言,功能非常強大、完整。三者之中在github上star數量最多。
缺點:可能由於功能過於強大,加文法檢測之後載入相對稍慢。配置略繁瑣。
650) this.width=650;" src="https://s2.51cto.com/wyfs02/M02/8F/02/wKioL1jRUJORCm4LAAPFFW3G94g455.png-wh_500x0-wm_3-wmp_4-s_1679001960.png" title="Snip20170322_29.png" alt="wKioL1jRUJORCm4LAAPFFW3G94g455.png-wh_50" />
jedi-vim:
優點:優點對我來說,就是上面兩個的缺點它都彌補了。載入速度挺快,頁面也挺簡潔。
缺點:沒有文法檢測;功能沒YCM強大,但是夠用足矣。
650) this.width=650;" src="https://s2.51cto.com/wyfs02/M02/8F/04/wKiom1jRUV-RrJ5IAAQHaoSd2Mc093.png-wh_500x0-wm_3-wmp_4-s_654360273.png" title="Snip20170322_30.png" alt="wKiom1jRUV-RrJ5IAAQHaoSd2Mc093.png-wh_50" />
So,最終我選擇了jedi-vim。
3.python文法檢測
有了自動補全之後就是文法檢測,個人傾向pep8標準,而且希望語法錯誤修正之後能夠被編輯器馬上識別。
我測過用以下幾種做checker:
flake8、pep257、pep8、pycodestyle、syntastic
pydocstyle、pyflakes、pylama、pylint、python
而最終我選擇了用外掛程式:"w0rp/ale",它的文法檢測最全面,介面簡潔,錯誤修正之後能夠被馬上識別出,而且是非同步,不必擔心載入過慢崩潰等問題。如:
650) this.width=650;" src="https://s1.51cto.com/wyfs02/M02/8F/04/wKiom1jRVLbwvDcIAAPouaEZgfg906.png-wh_500x0-wm_3-wmp_4-s_823591417.png" title="Snip20170322_31.png" alt="wKiom1jRVLbwvDcIAAPouaEZgfg906.png-wh_50" />
4.加強版自動補全
之前提到在vim裡面python的自動補全,為了使vim的功能更加強大,介紹一款外掛程式neocomplete.vim,使用它可謂讓vim的補全無處不在。如它會直接補全shell路徑。
需要注意一點:neocomplete requires Vim 7.3.885+ compiled with if_lua。
650) this.width=650;" src="https://s3.51cto.com/wyfs02/M00/8F/03/wKioL1jRVrXQ76JLAAP6Uu7SqZc931.png-wh_500x0-wm_3-wmp_4-s_3809492590.png" title="Snip20170322_35.png" alt="wKioL1jRVrXQ76JLAAP6Uu7SqZc931.png-wh_50" />
5.分類樹外掛程式
分類樹外掛程式自然是NERDTree,外加一個vim-nerdtree-tabs補強功能。如下:
650) this.width=650;" src="https://s1.51cto.com/wyfs02/M02/8F/06/wKiom1jRYPWyHCFeAAcatuZgXU0359.png-wh_500x0-wm_3-wmp_4-s_1877029855.png" title="Snip20170322_38.png" alt="wKiom1jRYPWyHCFeAAcatuZgXU0359.png-wh_50" />
最後還是那句話,適合自己的才是最好的。
本文出自 “xujpxm” 部落格,請務必保留此出處http://xujpxm.blog.51cto.com/8614409/1909043
vim+python打造自己的IDE外掛程式推薦