當然可以!你可以選擇使用 Windows Subsystem for Linux (WSL) 的 Bash Shell 作為你的預設終端機。如果你已經有透過 Windows 功能啟用了 WSL,你就可以從「終端機:選擇預設 Shell」的指令中選擇 WSL Bash。你可以從 Developing in WSL 找到更多有關 WSL 及 Remote - WSL 擴充套件的更多說明。
目前整合式終端機會把很多快捷鍵截留下來處理,所以 VS Code 就不會對這些快捷鍵產生反應。像是用來打開「尋找及執行所有命令」的快捷鍵 和在 Linux 和 Windows 中用來快速開啟檔案的 都會在這情況下失效。整合式終端機因為是純鍵盤的環境,所以它有必要把很多快捷鍵截留下來處理。你可以透過 terminal.integrated.commandsToSkipShell
的設定來避免快捷鍵被終端機截留下來。
這通常是因為 VS Code 被使用相容模式執行,通常你在升級你的 Windows 後,VS Code 就有可能被開啟相容模式。你可以對 VS Code 執行檔按右鍵進到內容中,並在相容性的分頁中取消「以相容模式執行這個程式」。
當然可以,要在整合式終端機中使用 Cmder,你需要在 settings.json
中透過以下的設定來調整:
"terminal.integrated.shell.windows": "C:\\WINDOWS\\System32\\cmd.exe",
"terminal.integrated.shellArgs.windows": ["/K", "C:\\cmder\\vendor\\init.bat"]
更多詳細的設定你可以參考 Cmder 的維基百科。
-l
的參數,該如何修正?當你在 macOS 的整合式終端機中指定使用 Powershell 時,你會遇到這個錯誤,它會一直在抱怨一個 -l
的參數,因為在 Unix-like 的 Shell(如:bash, zsh…)中,需要加上這個參數,才會讓 Shell 像一個登入的 Shell 一樣套用使用者的設定檔。要修正這個錯誤,你必須透過 terminal.integrated.shellArgs.osx
的設定來把預設的 -l
參數覆蓋如下:
"terminal.integrated.shellArgs.osx": []
如果你在 Windows 中希望把整合式終端機預設的 Shell 改回 Powershell,你可以透過使用者設定移除 terminal.integrated.shell.windows
。
舉例來說,如果你曾經把預設的 Shell 設定成 bash,你將會看到使用者設定有像是這樣的設定值:
"terminal.integrated.shell.windows": "C:\\WINDOWS\\System32\\bash.exe",
你只要把這行設定移除,就會回去使用預設的選項,或是你也可以指定成其他的 Shell 的執行檔完整路徑。
最簡單的修正方法就是改用 64 位元的 VS Code。如果你有非用 32 位元 VS Code 的理由,那你可以考慮把 Shell 的路徑改用 sysnative
的路徑(而非使用 System32
):
"terminal.integrated.shell.windows": "C:\\WINDOWS\\sysnative\\cmd.exe",
快捷鍵 預設可以把終端機的內容清空,但是很容易會因為安裝了其他擴充套件或是用戶的快捷鍵導致這個功能失效。在 VS Code 中,快捷鍵設定的優先順序為:「使用者」>「擴充套件」>「預設值」。如果要修正這個問題,你可以在你的使用者快捷鍵設定 keybindings.json
的後面直接新增以下的設定:
// macOS
{ "key": "cmd+k", "command": "workbench.action.terminal.clear", "when": "terminalFocus" },
// windows
{ "key": "ctrl+k", "command": "workbench.action.terminal.clear", "when": "terminalFocus" },
明天待續…