本文介紹,在 VSCode 使用 IPython Kernel,的設定方法。
要達到的效果:
只需按下 Ctrl+;
,選中的幾行程式碼,就會自動傳送到 IPython Kernel,並執行,得到結果!當然,快捷鍵也可以另行設定!
為什麼要這麼做:
首先,這種配置方式,比較輕量快速;
主要用於,增加寫程式碼時的“互動性”,可以邊寫程式碼,邊測試;例如,在寫程式碼時候,快速測試下,一行或幾行程式碼,看看效果;
所以,非常適合新手,邊寫邊學習,或者,需要寫個幾十行程式碼,迅速解決問題,的情況;
另外,這種配置也比較方便 Debug 的過程,因為可以逐行執行,或者,不按順序的執行測試任意一行程式碼;
基本配置:
- 安裝 Python 程式
- 安裝 IPython (pip install)
VSCode 外掛配置:
- Python 外掛 (Python 程式設計必備外掛)
- multi-command 外掛 (支援多步驟的命令)
設定方式:
1. 在 "setting.json" 中新增如下程式碼並儲存:
"python.terminal.launchArgs": ["-m", "IPython", "--no-autoindent"],
"multiCommand.commands": [
{
"command": "multiCommand.executeIPython",
"sequence": [
"python.execSelectionInTerminal",
"workbench.action.terminal.focus",
"workbench.action.terminal.scrollToBottom",
{"command": "workbench.action.terminal.sendSequence",
"args": { "text": "\u000D" }},
"workbench.action.focusActiveEditorGroup"
]
},
]
2. 在 "keybindings.json" 中新增如下程式碼並儲存:
{
"key": "ctrl+;",
"command": "multiCommand.executeIPython",
"when": "editorTextFocus && python.datascience.featureenabled && python.datascience.ownsSelection && !findInputFocussed && !notebookEditorFocused && !replaceInputFocussed && editorLangId == 'python'"
}
然後,就可以做到,按下 Ctrl+;
,直接傳送選中行,到 IPython Kernel 了!
微小的不足:
就是,首次,按下 Ctrl+;
,執行程式碼的時候,需要切換到 Terminal 視窗,手動按下回車,才會執行程式碼,
之後再執行程式碼時,直接按 Ctrl+;
即可,程式碼會自動傳送過去,並執行出結果,就再也不需要按回車了。
關於設定方式的解釋:
如果不感興趣設定原理,這部分,就可以跳過了,感興趣原理的,請繼續觀看!
首先,"setting.json" 中,設定的第一行,是為了讓,Python Interpreter 開啟時,自動調出 IPython Kernel;
而,"setting.json" 中的,第二項設定,是設定的,把選中程式碼傳送到 Kernel,並按下回車,的這一系列動作,這裡需要 multi-command 外掛的支援;
最後,在 "keybindings.json" 中的設定,是為了把,呼叫上面命令的快捷鍵,設定為 Ctrl+;
,如果想設定成其他快捷鍵,改掉 Key 後面的值就行了!
其他設定方法及互動模式 (Interactive Mode):
當然還有其他的設定方式也能達到同樣的效果
- 例如,直接執行程式碼
from IPython import embed; embed()
,也可以立刻開啟 IPython Kernel;只不過,這時候,就沒有快捷鍵那麼方便和舒服了;而且這樣開啟的 Kernel 都是黑白的,沒有彩色; - 也可以直接使用 VSCode 的 Python 外掛,自帶的 Interactive Mode 和 Jupyter Notebook 的功能;這兩個功能都超級好用,但若,只想快速解決個小問題,寫個幾十行程式碼的話,這兩個功能稍微有點 too much 了,而且很佔用螢幕的地方,不夠簡潔!關於這兩個功能,雖然非常好,但這裡就不詳細介紹了!
- 所以,我還是,最喜歡,也最推薦上面的方法!
篇尾結語:
OK,就先寫到這兒吧!小白貢獻,語失莫怪,希望對大家有幫助。
喜歡我的部落格,就請來關注吧:Bitssea
(^_^)
參考閱讀:
- How to set ipython/jupyter as the default python terminal for vscode?
- How can i force SHIFT+ENTER to run selection and execute it immediately running ipython in vscode?
- 快捷鍵繫結 - VScode 中文文件
- Visual Studio Code Key Bindings