nvm (Node Version Manager) 的使用者在啟動整合式終端機的時候通常會看到以下錯誤訊息:
nvm is not compatible with the npm config "prefix" option: currently set to "/usr/local"
Run `npm config delete prefix` or `nvm use --delete-prefix v8.9.1 --silent` to unset it
這個問題通常都只有 macOS 的使用者才會遇到,而且使用外部終端機開啟的時候不會有這個問題,常見的可能原因為:
npm
是使用另一個 node
來全域安裝的,這個另外的 node
可能位於 $PATH
環境變數中的其他資料夾中。(例如:/usr/local/bin/npm
)$PATH
中的開發工具,它會在啟動時同時啟動一個 bash shell,這代表說 ~/.bash_profile
已經被執行過了,當你開啟整合式終端機時,它又會執行一個 login shell,這可能會造成 $PATH
中的路徑出現不正確的順序。要解決這個問題,你必須找到有問題的 npm
的安裝路徑,並且把它連同有問題的 node_modules
一起移除,你可以透過尋找 nvm 的啟動指令,並且在指令執行前先執行 which npm
來找到有問題的 npm
位置所在。
只要你找到了有問題的 npm 路徑,你就可以如下的指令來解析 symlink 並找到有問題的 node_modules:
ls -la /usr/local/bin | grep "np[mx]"
這個指令將會告訴你這個 symlink 實際上會指向何處:
... npm -> ../lib/node_modules/npm/bin/npm-cli.js
... npx -> ../lib/node_modules/npm/bin/npx-cli.js
然後你就可以透過移除這些檔案並重開 VS Code 來解決這個錯誤:
rm -R /usr/local/bin/npm /usr/local/lib/node_modules/npm/bin/npm-cli.js
rm -R /usr/local/bin/npx /usr/local/lib/node_modules/npm/bin/npx-cli.js
當然可以!你可以透過 terminal.integrated.fontFamily
設定來指定使用 Powerline 字型。
"terminal.integrated.fontFamily": "Meslo LG M DZ for Powerline"
這裡需要注意的是,你所指定的名字必須是字型家族的名稱,而不是該字型家族中的某個子字型,因為你如果指定成了該字型家族中的某個子字型(如:Meslo LG M DZ Regular for Powerline
),這個子字型是 Regular
,所以你的全部文字就都只會是 Regular
的粗細!
在 bash 中,你預設可以使用 和 的快捷鍵來讓你的游標跳單字,但是在 zsh 中你需要透過修改以下的設定才能達到一樣的效果:
{
"key": "ctrl+left",
"command": "workbench.action.terminal.sendSequence",
"args": { "text": "\u001bb" }
},
{
"key": "ctrl+right",
"command": "workbench.action.terminal.sendSequence",
"args": { "text": "\u001bf" }
}
ConnectNamedPipe failed: Windows error 232
的錯誤?這個問題通常是由防毒軟體所引起的,防毒軟體會禁止 winpty 程式來擷取 pty 的輸入輸出,如果要解決這個錯誤,你需要把以下的程式加到防毒軟體的排除清單內:
<install_path>\resources\app\node_modules.asar.unpacked\node-pty\build\Release\winpty-agent.exe
終端機在某些環境下會出現一些渲染問題,例如你有可能會看到一個巨大的彩色三角形,而看不到文字,這通常是因為驅動程式或是顯示卡所造成的問題,而且在 Chromium 中也會有一樣的問題,你可以在啟動 code
的時候加上 --disable-gpu
的參數,或是透過修改 "terminal.integrated.rendererType": "dom"
設定來避免使用 <canvas>
的方式來渲染終端機。