pythonvim配置
Ⅰ 如何使 Vim 下開發 python 調試更方便
剛開始用vim寫python的時候,感覺很不方便,於是就用了圖形界面的Pycharm(如果是windows用戶,這個IDE應該是標配),用了一段時間也沒有覺得有什麼不好,不過,腦子里總是會想起《程序員修煉之道》中,那句」最好是精通一種編輯器,並將其用於所有編輯任務。如果不堅持使用一種編輯器,可能會面臨現代的巴別特大混亂。」所以,我又決定用vim來寫python。
在知乎上有很多vim寫python的插件推薦,不過我感覺很多人回答都不動腦子,這些回答主要有兩個問題:
回答不全面,很多人都只是推薦一款插件,然後貼個鏈接就完了,如果要想很爽的用vim寫python,可以肯定的是,一款插件是不夠的
貼上自己的配置,說自己的配置有多爽,然後就不管了。如果是一個vim新手,是用不著這么多配置的,如果是一個vim老手,也不會放棄自己原有的配置,使用別人自定義、認為很爽的個性化配置
- 1. 一鍵執行
- """""""""""""""""""""" "Quickly Run """"""""""""""""""""""
- map <F5> :call CompileRunGcc()<CR>
- func! CompileRunGcc()
- exec "w"
- if &filetype == 'c'
- exec "!g++ % -o %<"
- exec "!time ./%<"
- elseif &filetype == 'cpp'
- exec "!g++ % -o %<"
- exec "!time ./%<"
- elseif &filetype == 'java'
- exec "!javac %"
- exec "!time java %<"
- elseif &filetype == 'sh'
- :!time bash % elseif &filetype == 'python'
- exec "!time python2.7 %"
- elseif &filetype == 'html'
- exec "!firefox % &"
- elseif &filetype == 'go' " exec "!go build %<"
- exec "!time go run %"
- elseif &filetype == 'mkd'
- exec "!~/.vim/markdown.pl % > %.html &"
- exec "!firefox %.html &"
- endif
- endfunc
- 2. 代碼補全(snipMate)
- if __name__ == '__main__':
- main()
- for needle in haystack: # code...
snipMate
xptemplate
- 3. 語法檢查(Syntastic)
- 4. 編程提示(jedi-vim)
- sudo aptitude install vim-gnome vim vim-common vim-tiny
- 至於調試,難道你們不是用ipdb的嗎?如果不是,趕緊用用,你們會喜歡的。
所以,這些回答都不是很靠譜。我爭取推薦一些靠譜的東西,那麼,就開始吧!
這個不是插件,而是一個自定義的vim配置。很多時候我們寫python,都是寫一些較為簡單的腳本,那麼,這個一鍵執行的功能就非常實用,我個人感覺最實用的是在寫單元測試的時候,寫完一個單元測試,都不用退出vim,立即執行就能看到結果。
將下面的配置放到.vimrc文件即可:
代碼補全能夠顯著地減少你敲鍵的次數,並且將你從瑣碎的語法中解放出來。說白了,就是幫你寫代碼!
如果使用snipMate插件,那麼,當你輸入ifmain以後按tab鍵,將會自動為你生成下面的代碼:
輸入for,再按tab鍵,生成如下代碼:
代碼補全有兩款插件都比較不錯,可以根據自己的需要進行選擇:
syntastic是一款強大的語法檢查插件,當你保存源文件時,它就會執行,並提示用戶哪些代碼存在語法錯誤,哪些代碼風格不符合規范,並給出具體的提示。
例如,python代碼風格默認設置為PEP8,即使你不知道PEP8的風格,只要你使用syntastic插件,並根據它給出的提示修改,那麼,你就能寫出完全符合PEP8風格的代碼!
jedi-vim是基於jedi的自動補全插件,與Syntastic 不同的是,該插件更加智能,更貼切的稱呼是」編程提示」,而不是代碼補全插件。
如下圖所示:
可以說,這個插件是寫vim的標配,並且,真正讓vim寫python變成一件輕松愉快的事情。
注意: 安裝驚jedi-vim插件,需要在電腦中安裝jedi,根據jedi-vim給出的提示,正常按裝即可。不過我之前遇到一個問題,在公司的虛擬機裡面,安裝以後不起作用,google了半天沒有成功,最後更新了一下vim就可以了,希望遇到相同問題的人,能夠看到。
Ⅱ vim中Python編輯問題
python是靠縮進來決定語句的層次關系的,所以你的縮進風格一定要統一,並且不能把空格和tab混起來用,而不幸的,你的softtabstop就是干這個壞事的。把你上面貼的設置語句中的最後兩句改成
set expandtab
set tabstop=4
set shiftwidth=4
set softtabstop=4
這樣就總是把tab映射成4個空格,絕對不會有縮進方面的問題,而且還可以用backspace一次把4個空格刪掉。
或者你想用純粹的tab,那就不要把tab映射成空格,用下面的配置,tab寬度是4
set noexpandtab
set tabstop=4
set shiftwidth=4
set softtabstop=0 "一定要設置成0
Ⅲ 使用vim搭建python開發環境-
最近開始經常需要用vim寫代碼,這里記錄一下自己利用vim搭建基本的python開發環境所使用的插件和一些基本配置
在 ~/.vimrc 文件中,添加如下的信息,完成vim的一些基本配置。
從 GitHub clone Vundle.vim 文件到 ~/.vim/bundle 文件夾下,完成Vundle的安裝。
然後修改 ~/.vimrc 文件,添加如下的信息
若使用 Vundle 安裝 nerdcommenter 插件,需要中 Vim 的配置文件中添加
然後在 Vim 的命令行模式下執行 :BundleInstall 命令完成插件的安裝
nerdcommenter的主要使用方式:
然後在 Vim 的命令行模式下執行 :BundleInstall 命令完成插件的安裝
通過vundle安裝好NERDTree插件後,在vim命令行模式輸入命令:NERDTree就可以看到NERDTree的顯示界面。
使用組合按鍵 Ctrl + w,可將游標自動在左右側窗口進行切換。
如果想要每次啟動vim的時候都默認開啟NERDTree。可以在vimrc文件中添加:
jedi-vim插件依賴python開源庫 「jedi」 ,可以使用pip安裝:
Vim 普通模式下按 F7 便可以直接啟動 flake8 對當前文件進行語法和格式檢查。
以上是我自己用的vim工具配置,如果大家有其他的好用的插件或者配置插件,歡迎一起交流分享呀
Ⅳ vim不支持python,是不是缺少什麼東西
問題可能來自兩方面: vim 沒有把 python 支持特性編譯進來;或者編譯支持的 python 與本地安裝的版本不兼容。
1. 只有編譯的時候帶了 python 支持的 vim 才能使用相關的功能。要想知道 vim 是否帶了編譯時的支持,使用:
:version
看有沒有 +python 之類的字樣。如果是 + 號,表示支持,如果是 - 號就是不支持(像我截圖中標出的 postscript 就是 -)。python 代表 python 2,python3 表示 python 3 的支持情況。
pythonthreedll=python35.dll
這樣你的電腦里必需要安裝 python 3.5 才可以配合 vim 使用。注意一定要是標准版的才行,定製版(比如 Anaconda)是不行的。
vim 和 python 有相當深入的交互。除了簡單的交互執行 python 語句和返回結果外,vim 的內部的數據結構(比如緩沖區、窗口之類的)和 vim-script 腳本的執行介面也全對 python 開放。因此對 python 各版本支持的靈活性就要差一些,需要在編譯階段就確定。
如果想兼容你電腦上已有的 python,需要在你的電腦上重新編譯 vim,這通常比較困難。在你的電腦上配置兩套 python 環境要相對容易很多。或者如果你對 python 的要求並不高的話,就用 vim 支持的那版也行。
以上的回答假定您已經對 python 有一定的了解,並且可以自己正確的安裝和配置 python 的環境。如果拋開 vim,python 都不能正確執行,那麼需要先解決 python 的安裝和配置問題。
Ⅳ 怎樣根據不同的語言調用不同的vim配置文件
如果 vim 能夠識別某種語言的類型,那麼就會載入和該類型有關的語言配置。如鍵映射、語法高亮等。
如果你想自己增加一些需要的配置文件,那麼在 ~/.vim/ 下(windows 系統則是我的文檔下的 vimfiles 文件夾下)增加配置文件即可(如果沒有這個文件夾,自己創建就好,但名字一定不要搞錯)。
這個文件夾下,還有如下子文件夾(依然沒有就創建):
after/
autoload/
colors/
compiler/
doc/
ftdetect/
ftplugin/
indent/
keymap/
plugin/
syntax/
其中 ftplugin 用於你自己定義類型文件的擴展插件,ftdetcet 用來定義類型文件自動識別,indent 用於定義類型文件的自動縮進,syntax 用於定義類型文件的語法高亮。
如果你要定義 c 語言的特殊配置,文件名就要叫 c.vim。如果是 python,文件名就是 python.vim。
換言之,你想定義一組 c 言語鍵映射,就寫一個叫 c.vim 的腳本(這需要不少技巧,需要學習一些編寫 vim 腳本的知識),然後放到 ftplugin 里去。如果是想定義c語言的語法高亮,就寫一個 c.vim 的語法高亮腳本,放到 syntax 裡面。
由於 vim 已經自帶了很多這樣的腳本,(在 vim 的安裝目錄下,目錄的組織形式和你自定義的一樣),所以通常不需要自己配置太多。如果自己有需要,可以簡單的加一些。
如果你的問題是指,某個語言文件沒有被正確識別,那麼可以了解下 vim 自動識別的過程:
首先 vim 根據文件的擴展名來判斷文件的內容,比如 .c 就會認為是 C 語言文件。.py 就會認為是 python。.txt 就會認為是普通文本。
如果沒有擴展名的文件,vim 也會通過文件內容來做簡單的識別。這一般是掃描文件的開頭數行(有些語言只掃描前5行,也有些會掃描幾百行),看是否出現某種語言的特徵。一但出現,便識別成相應的語言。但這發生在載入一個文件的時候。如果你是新建了一個沒有擴展名的文件,那麼之後再往裡輸入內容,vim 就不會再去識別了。
如果一個文件沒有被識別,或識別錯誤。你也可以手動指定:
:setfc
來把之設置成你需要的語言。c 那裡寫實際語言的名字。如果你發現之後文件的內容正確的顯示了語法高亮,那麼就說明這個設置已經成功了。