1. 程式人生 > >Python の 在 VSCode 中使用 IPython Kernel 的方法

Python の 在 VSCode 中使用 IPython Kernel 的方法

>本文介紹,在 VSCode 使用 IPython Kernel,的設定方法。
### 要達到的效果: 只需按下 `Ctrl+;`,選中的幾行程式碼,就會自動傳送到 IPython Kernel,並執行,得到結果!當然,快捷鍵也可以另行設定! ![](https://img2020.cnblogs.com/blog/1980108/202009/1980108-20200905011732433-1434205656.png)
### 為什麼要這麼做: 首先,這種配置方式,比較輕量快速; 主要用於,增加寫程式碼時的“互動性”,可以邊寫程式碼,邊測試;例如,在寫程式碼時候,快速測試下,一行或幾行程式碼,看看效果; 所以,非常適合新手,邊寫邊學習,或者,需要寫個幾十行程式碼,迅速解決問題,的情況; 另外,這種配置也比較方便 Debug 的過程,因為可以逐行執行,或者,不按順序的執行測試任意一行程式碼;
### 基本配置: + 安裝 Python 程式 + 安裝 IPython (pip install)
### VSCode 外掛配置: + Python 外掛 (Python 程式設計必備外掛) + multi-command 外掛 (支援多步驟的命令)
### 設定方式: #### 1. 在 "setting.json" 中新增如下程式碼並儲存: ```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" 中新增如下程式碼並儲存: ```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](https://www.cnblogs.com/bitssea/) (\^_^)
### 參考閱讀: 1. [How to set ipython/jupyter as the default python terminal for vscode?](https://stackoverflow.com/questions/52615414/how-to-set-ipython-jupyter-as-the-default-python-terminal-for-vscode) 2. [How can i force SHIFT+ENTER to run selection and execute it immediately running ipython in vscode?](https://stackoverflow.com/questions/54332723/how-can-i-force-shiftenter-to-run-selection-and-execute-it-immediately-running/61700005#61700005) 3. [快捷鍵繫結 - VScode 中文文件](https://jeasonstudio.gitbooks.io/vscode-cn-doc/content/md/%E5%BF%AB%E9%80%9F%E5%85%A5%E9%97%A8/%E5%BF%AB%E6%8D%B7%E9%94%AE%E7%BB%91%E5%AE%9A.html) 4. [Visual Studio Code Key Bindings](https://code.visualstudio.com/docs/getstarted/keybindings)