Python の 在 VSCode 中使用 IPython Kernel 的方法
本文介紹,在 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