當前位置:首頁 » 編程語言 » vimpython

vimpython

發布時間: 2022-01-09 15:33:42

『壹』 vim中怎麼優雅的執行python代碼

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寫python的時候,感覺很不方便,於是就用了圖形界面的Pycharm(如果是windows用戶,這個IDE應該是標配),用了一段時間也沒有覺得有什麼不好,不過,腦子里總是會想起《程序員修煉之道》中,那句」最好是精通一種編輯器,並將其用於所有編輯任務。如果不堅持使用一種編輯器,可能會面臨現代的巴別特大混亂。」所以,我又決定用vim來寫python。

在知乎上有很多vim寫python的插件推薦,不過我感覺很多人回答都不動腦子,這些回答主要有兩個問題:

  • 回答不全面,很多人都只是推薦一款插件,然後貼個鏈接就完了,如果要想很爽的用vim寫python,可以肯定的是,一款插件是不夠的

  • 貼上自己的配置,說自己的配置有多爽,然後就不管了。如果是一個vim新手,是用不著這么多配置的,如果是一個vim老手,也不會放棄自己原有的配置,使用別人自定義、認為很爽的個性化配置


  • 所以,這些回答都不是很靠譜。我爭取推薦一些靠譜的東西,那麼,就開始吧!


  • 1. 一鍵執行

  • 這個不是插件,而是一個自定義的vim配置。很多時候我們寫python,都是寫一些較為簡單的腳本,那麼,這個一鍵執行的功能就非常實用,我個人感覺最實用的是在寫單元測試的時候,寫完一個單元測試,都不用退出vim,立即執行就能看到結果。

    將下面的配置放到.vimrc文件即可:



  • """""""""""""""""""""" "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)

  • 代碼補全能夠顯著地減少你敲鍵的次數,並且將你從瑣碎的語法中解放出來。說白了,就是幫你寫代碼!


    如果使用snipMate插件,那麼,當你輸入ifmain以後按tab鍵,將會自動為你生成下面的代碼:


  • if __name__ == '__main__':

  • main()

  • 輸入for,再按tab鍵,生成如下代碼:


  • for needle in haystack: # code...


  • 代碼補全有兩款插件都比較不錯,可以根據自己的需要進行選擇:

  • snipMate

  • xptemplate

  • 3. 語法檢查(Syntastic)

  • syntastic是一款強大的語法檢查插件,當你保存源文件時,它就會執行,並提示用戶哪些代碼存在語法錯誤,哪些代碼風格不符合規范,並給出具體的提示。

    例如,python代碼風格默認設置為PEP8,即使你不知道PEP8的風格,只要你使用syntastic插件,並根據它給出的提示修改,那麼,你就能寫出完全符合PEP8風格的代碼!


  • 4. 編程提示(jedi-vim)

  • jedi-vim是基於jedi的自動補全插件,與Syntastic 不同的是,該插件更加智能,更貼切的稱呼是」編程提示」,而不是代碼補全插件。


    如下圖所示:


    可以說,這個插件是寫vim的標配,並且,真正讓vim寫python變成一件輕松愉快的事情。

    注意: 安裝驚jedi-vim插件,需要在電腦中安裝jedi,根據jedi-vim給出的提示,正常按裝即可。不過我之前遇到一個問題,在公司的虛擬機裡面,安裝以後不起作用,google了半天沒有成功,最後更新了一下vim就可以了,希望遇到相同問題的人,能夠看到。



  • sudo aptitude install vim-gnome vim vim-common vim-tiny



  • 至於調試,難道你們不是用ipdb的嗎?如果不是,趕緊用用,你們會喜歡的。

『肆』 如何在vim指定Python解釋器的版本

確保你的 python 解釋器在系統的 path 目錄里。然後執行

:setpythonthreedll=python35.dll

python35 那裡改成你要指定的版本。

如果你要指定的是 python2,用這個

:setpythondll=python27.dll

指定好之後,可以試一下

:py3print("hello")

python2 的話,就是 :py 加命令了。

如果成功就沒問題了。之後你要把上面 :set ... 的相關內容寫到 vimrc 里去,下次啟動 vim 就不用再次指定了。

『伍』 如何使vim下開發python調試更方便

1. 一鍵執行

這個不是插件,而是一個自定義的vim配置。很多時候我們寫python,都是寫一些較為簡單的腳本,那麼,這個一鍵執行的功能就非常實用,我個人感覺最實用的是在寫單元測試的時候,寫完一個單元測試,都不用退出vim,立即執行就能看到結果。
將下面的配置放到.vimrc文件即可:

""""""""""""""""""""""
"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)

代碼補全能夠顯著地減少你敲鍵的次數,並且將你從瑣碎的語法中解放出來。說白了,就是幫你寫代碼!

如果使用snipMate插件,那麼,當你輸入ifmain以後按tab鍵,將會自動為你生成下面的代碼:

if __name__ == '__main__':
main()

輸入for,再按tab鍵,生成如下代碼:

for needle in haystack:
# code...

代碼補全有兩款插件都比較不錯,可以根據自己的需要進行選擇:
snipMate
xptemplate
3. 語法檢查(Syntastic)

syntastic是一款強大的語法檢查插件,當你保存源文件時,它就會執行,並提示用戶哪些代碼存在語法錯誤,哪些代碼風格不符合規范,並給出具體的提示。
例如,python代碼風格默認設置為PEP8,即使你不知道PEP8的風格,只要你使用syntastic插件,並根據它給出的提示修改,那麼,你就能寫出完全符合PEP8風格的代碼!

4. 編程提示(jedi-vim)

jedi-vim是基於jedi的自動補全插件,與Syntastic 不同的是,該插件更加智能,更貼切的稱呼是」編程提示」,而不是代碼補全插件。

如下圖所示:

可以說,這個插件是寫vim的標配,並且,真正讓vim寫python變成一件輕松愉快的事情。
注意: 安裝驚jedi-vim插件,需要在電腦中安裝jedi,根據jedi-vim給出的提示,正常按裝即可。不過我之前遇到一個問題,在公司的虛擬機裡面,安裝以後不起作用,google了半天沒有成功,最後更新了一下vim就可以了,希望遇到相同問題的人,能夠看到。

sudo aptitude install vim-gnome vim vim-common vim-tiny

『陸』 打算用vim寫Python 各位指點下

保存在當前文件夾下,
那你就cd到桌面那個文件夾下再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編寫python

vim只能修改文件,不能編譯。 比方說你可以直接在終端輸入vim Code.py來打開文件並修改之類的。 如果要編譯,就要在終端輸入Python Code.py 那麼他會自行對該文件編譯然後直接運行

『玖』 如何在VIM中指定Python解釋器版本

你可能不想(或至少不應該) code> python3 作為vim的默認python解釋器,因為你的插件的一些(大部分)將變得不兼容,例如 YouCompleteMe 和 clang_complete 本身,因為他們沒有 python3 支持。通常,支持 python3 的插件可以讓您決定是否要通過添加到 .vimrc

let g:syntastic_python_python_exec ='python3'

解決方案: :echo has('python')顯示 0 實際上告訴你vim可能不是用 python2 編譯的。所以首先檢查 vim --version 的輸出,你應該能夠看到你的編譯器構建vim的共享庫列表。你看到以下? (例如對於python 2.7):

-L / usr / lib / python2.7 / config-x86_64-linux-gnu - lpython2.7

如果沒有(或者如果你看到 -lpython2.x 和 -lpython3.x 我建議你從源代碼編譯vim,具體鏈接到 -lpython2.x

sudo apt-get remove --purge vim vim-runtime vim-gnome vim-tiny vim-common vim-gui-common

clone vim mercurial

hg clone htvim/
cd vim

,然後使用以下標志運行 ./ configure :

./configure --with-features = huge \
--enable-cscope \
--enable-pythoninterp \
--enable-largefile \
--with-python-config-dir = / usr / lib / python2.7 / config

您還可能想要鏈接 ruby 和 lua 如果需要,然後最後運行

make build
make install

這里是shell腳本,將自動執行整個過程為你。這可能有點過分,但我認為這是你應該如何處理這不與運行與您的未來包的兼容性問題。

熱點內容
119濃度的鹽酸怎麼配置 發布:2024-04-20 06:23:38 瀏覽:119
資料庫pf 發布:2024-04-20 05:57:36 瀏覽:393
c語言編譯出現連接錯誤 發布:2024-04-20 05:42:18 瀏覽:198
湖北戴爾伺服器維修系統雲主機 發布:2024-04-20 05:36:47 瀏覽:62
android上傳數據 發布:2024-04-20 05:36:43 瀏覽:142
python替換文本內容 發布:2024-04-20 05:21:22 瀏覽:899
urllib3源碼 發布:2024-04-20 05:11:23 瀏覽:34
如何通過運行打開伺服器文件 發布:2024-04-20 00:06:50 瀏覽:671
電腦百度網盤怎麼上傳 發布:2024-04-19 23:49:15 瀏覽:417
陸放四驅買哪個配置 發布:2024-04-19 23:49:08 瀏覽:407