用 Vim 寫 Python 的最佳實踐
先來曬個圖:
對於一些 Python 的小項目,使用 vim 是一個不錯的選擇。本文內容整理自我在知乎的回答 用 Vim 寫 Python 的最佳實踐是什麼? ,以下的內容是對知乎舊有回答的一個補充,尤其有一些主要針對 vim8. 如果想要更多內容,可以查看知乎對於該問題的一些回答。
語法檢查
如果用 vim8, 那麼可以用非同步檢測的 w0rp/ale 代替 syntastic 了,再也不用羨慕 flycheck, 也不用因為語法檢查而卡頓了。
關於 ale 這部分的個性化配置,其實有點 “吹毛求疵”,一般使用默認的應該就夠了,不過我喜歡 fancy 的東西,就折騰了一把。涉及的東西可能比較細枝末節,可以直接看 space-vim: syntax-checking 了解一下大概的配置 。主要是針對 ale 提供的 statusline 內容進行再提取進行展示。如果沒有語法錯誤就不顯示在 statusline, 如果有 warning 或 error, 則透過不同顏色就行區分。
而關於側邊的 warning 或 error sign, 我喜歡乾淨一點,用前景色區分就好,下面這樣有時候會像一塊塊的補丁貼在上面,覺得不太好看。
syntax 增強
vim 自帶對於python 的高亮有點弱,連self 都不給我亮起來, 這一點可以透過python-mode/python-mode 來增強具體可以看這裡space-vim: python layer
在python-mode 的syntax/python.vim 裡,可以看到比vim 自帶的syntax/python.vim 更加細緻的高亮群組,應該不難看懂各項內容,照著顏色表自行修改高亮風格就可以了。這是 terminal 256 色對照表 256 Terminal colors and their 24bit equivalent (or similar), 這是 GUI 顏色對照表 Complete HTML True Color Chart 。
這麼做的優點自然是想要什麼效果完全可自訂,但是也有缺點,因為可能沒辦法適配所有的 vim 主題。當你切換主題時,這些針對 python 自訂的高亮也許會有些不太契合。就算是只算流行的那些 vim 主題,恐怕也有兩位數了,有些是冷色調,有些是暖色調,有些以藍色為主,有些是紅色居多,應該不太容易找一些百搭的配色。不過每個人所中意的主題可能也就是那麼幾個,所以自行選擇吧.....
其實python-mode 有點集大成的意思,囊括了用vim 寫python 的很多功能,有興趣的可以嘗試靠它「一招打遍天下」。不過,目前我只是中意這一部分而已。
程式碼格式化
這一點可以透過google/yapf 來完成,安裝好yapf, 像下面這樣
就能對當前文件進行格式化:<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"> hi pythonSelf ctermfg=174 guifg=#6094DB cterm=bold gui=bold</pre><div class="contentsignin">登入後複製</div></div>
自動補全
這一點因為我主要還是使用vim, 因此用的YouCompleteMe, 實際後端用的是已經提到的jedi-vim. 如果不喜歡ycmd, 使用neovim 的可以嘗試使用deoplete.nvim .
import 整理
各種import 是不是顯得有點亂?用timothycrosley/isort 整理一下:
autocmd FileType python nnoremap <LocalLeader>= :0,$!yapf<CR>
一鍵運行
這個可以透過skywind3000/asyncrun.vim 來增強, 把之前的
! 換成AsyncRun!
就好了點:很多人的一鍵運行可能大概長這樣:
autocmd FileType python nnoremap <LocalLeader>i :!isort %<CR><CR>
可以直接把上面的
! 換成AsyncRun!
嗎?答案是不可以,如果要達到之前的效果,應該要這樣:<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">...
exec "!g++ % -o %<"
exec "!time ./%<"
...</pre><div class="contentsignin">登入後複製</div></div>
要用分號鏈接多條命令(linux)或者 & 鏈接多條命令(windows),具體可以看 這裡。
具體完整的 vim 配置在這裡: >>> space-vim (覺得寫得不錯的話可以順便到 github 點個 star

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

PHP適合網頁開發和快速原型開發,Python適用於數據科學和機器學習。 1.PHP用於動態網頁開發,語法簡單,適合快速開發。 2.Python語法簡潔,適用於多領域,庫生態系統強大。

在 Sublime Text 中運行 Python 代碼,需先安裝 Python 插件,再創建 .py 文件並編寫代碼,最後按 Ctrl B 運行代碼,輸出會在控制台中顯示。

PHP起源於1994年,由RasmusLerdorf開發,最初用於跟踪網站訪問者,逐漸演變為服務器端腳本語言,廣泛應用於網頁開發。 Python由GuidovanRossum於1980年代末開發,1991年首次發布,強調代碼可讀性和簡潔性,適用於科學計算、數據分析等領域。

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

Golang在性能和可擴展性方面優於Python。 1)Golang的編譯型特性和高效並發模型使其在高並發場景下表現出色。 2)Python作為解釋型語言,執行速度較慢,但通過工具如Cython可優化性能。

在 Visual Studio Code(VSCode)中編寫代碼簡單易行,只需安裝 VSCode、創建項目、選擇語言、創建文件、編寫代碼、保存並運行即可。 VSCode 的優點包括跨平台、免費開源、強大功能、擴展豐富,以及輕量快速。

在 Notepad 中運行 Python 代碼需要安裝 Python 可執行文件和 NppExec 插件。安裝 Python 並為其添加 PATH 後,在 NppExec 插件中配置命令為“python”、參數為“{CURRENT_DIRECTORY}{FILE_NAME}”,即可在 Notepad 中通過快捷鍵“F6”運行 Python 代碼。
