vscode對於python的支持之前覺得是不太好的,比如代碼智能提示、補全、快速修復等都體驗都比較差,和CLion或者PyCharm有比較大的差距。
但是在2020年7月份微軟爲vscode發佈了新的語言服務器Pylance,體驗有比較大的提升,目前還是預覽版,還有比較多的改進空間,正式版值得期待。
一 必備插件
通過快捷鍵Ctrl+Shift+X
打開擴展安裝界面,安裝需要的插件。
1 Python
安裝完插件後,打開python文件會自動提示選擇Python解析器。
也可以通過Ctrl+Shift+P
打開命令面板輸入Select Interpreter
來選擇需要的解析器。
安裝完Python插件後,也會提示安裝一些它所依賴的packages,可以按需都安裝上。
2 Pylance
強烈建議使用Pylance替代默認的Python語言服務器,它支持一些很棒的功能,比如:
- Docstrings
- 自動導入
- 類型檢查
- Code Lens
- IntelliCode 兼容性
設置如下:
{
"python.languageServer": "Pylance"
}
二 推薦設置
1 設置code formatter爲yapf
它和默認使用的autopep8
的不同之處在於它不僅會指出代碼中違反PEP8
規範的地方,還會對沒有違反PEP8
但代碼風格不一致的地方重新格式化,可以讓令代碼的可讀性更強。
設置步驟:
- 打開設置(
Ctrl+ ,
):搜索"formatting.provider"
- 選擇
yapf
,如果沒有安裝,vscode會發出提示,按提示安裝即可 - 也可以直接打開設置文件添加一行:
"python.formatting.provider": "yapf",
- 使用方法:選中需要格式化的代碼,右鍵選擇格式化選定內容,快捷鍵:
Ctrl + K, Ctrl + F
或者Ctrl+Shift+I
(macos爲Alt+Shift+F
) - 可以通過設置
"python.formatting.yapfArgs"
添加自定義的格式化參數
2 設置自動格式化
可以打開保存時和鍵入一行後立即進行代碼格式化,設置選項爲:
{
"editor.formatOnSave": true,
"editor.formatOnType": true
}
3 設置靜態代碼linter爲flake8
Flake8是由Python官方發佈的一款輔助檢測Python代碼是否規範的工具,它包含PEP8編碼風格檢查,代碼靜態檢查則是依託PyFlakes,相對於Pylint,其檢查規則靈活,擴展性更強一些。
設置步驟:
- 通過
Ctrl+Shift+P
打開命名面板,搜索Python: Select Linter
選擇flake8即可 - 或者打開設置文件添加:
"python.linting.flake8Enabled": true,
同時最好關閉Pylint,json設置如下:
{
"python.linting.flake8Enabled": true,
"python.linting.pylintEnabled": false,
}
4 自動補全設置
打開自動添加括號,在自動補全函數時,可以自動加上括號,提高效率:
{
"python.autoComplete.addBrackets": true,
}
5 添加自動補全庫路徑
爲額外的Python庫支持自動補全,設置路徑:
{
"python.autoComplete.extraPaths": []
}
6 添加分析路徑
添加額外導入路徑,設置:
{
"python.analysis.extraPaths": []
}
這對於導入項目中一些自己實現的python文件很有幫助。
7 添加垂直參考線
Python的代碼風格要求代碼一行不超過79字符,所以我們可以給代碼編輯器設置一條垂直參考線,直觀判斷代碼是否太長,並且可以自定義參考線的顏色:
{
"editor.rulers": [
80,
],
"workbench.colorCustomizations": {
"editorRuler.foreground": "#ff4081"
}
}
效果如下:
三 常用操作
1 自動導入
在使用到某個庫的時候,可以使用自動導入,並且導入的時候會選擇import語句插入的位置,保持import語句有序,如下演示:
2 排序import
在Python源文件中直接右鍵,選擇排序Import語句
,vscode將會通過isort
自動將import語句分組並排序,非常nice。
3 重構代碼
光標放到在函數名、參數名上按F2
重構變量名。
如果沒有安裝重構工具rope
,按提示安裝即可。
4 提取變量或方法
選擇一段代碼,將會出現一個小燈泡(Quick fix),點擊小燈泡即可選擇將所選代碼提取爲變量或者函數。
如下圖:
筆者目前在macos實測功能還有些不完美,期待後續能夠修復。
5 觸發參數提示
在調用函數的時候,vscode會自動彈出參數提示,可以通過ESC
關閉,關閉後可以通過快捷鍵Ctrl+Shift+Space
喚出。
但是這個快捷鍵可能會被輸入法佔用,可以修改綁定快捷鍵,通過快捷鍵Ctrl+K Ctrl+S
打開快捷鍵設置窗口,搜索editor.action.triggerParameterHints
,修改快捷鍵即可。
6 在終端運行選中代碼
運行腳本可以通過右鍵選擇在終端中運行Python文件
,而如果要運行文件中的一小段代碼,可以通過選中需要運行的代碼,按快捷鍵Shift+Enter
就可以了。
其實現的方式是通過終端運行Python,再在Python中執行對應代碼。
通過以上配置和相關知識,即可在使用vscode開發Python的時候獲取到良好的體驗。
本文是vscode系列文章之一,往期文章可以在文末閱讀下一篇,或者在公衆號首頁vscode話題中查看其他文章。
由於vscode對於python的支持在持續優化中,如果有新的好用的特徵,筆者會推出新的文章;
如果有朋友知道其他一些好用的配置,也歡迎通過公衆號給我留言分享。