zsh 環境讀取不到 nvm

最近到新公司後,有配到一台 mac pro 可以用,想當然遇到了不少環境設定問題。其中一個區塊是 bash/zsh 的環境處理,底下又有很多子問題,像是

  1. zsh 抓不到一些安裝的套件,例如 nvm
  2. vscode 打開時,會出現 shell 環境載入太慢的提示訊息

以下是我嘗試解決的方式

一、先打開 .bashrc 檔案

1
2
vim ~/.bashrc # 用 vim 打開
code ~/.bashrc # 用 vscode 打開

二、在 .bashrc 檔案添加指令

1
2
3
4
5
6
7
8
9
10
11
function load-nvm {
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
}

if [[ "x${TERM_PROGRAM}" = "xvscode" ]]; then
echo 'in vscode, nvm not work; use `load-nvm`';
else
load-nvm
fi

如果只是要在 CLI 中能使用 nvm 的話,只要 function load-nvm 裡面的指令就好

但為了處理 vscode 開啟時 shell 環境載入太慢的緣故,則多了下面是不是 vscode 環境的判斷

三、打開 .zshrc 檔案

1
2
vim ~/.bashrc
code ~/.zshrc

四、在 .zshrc 檔案添加指令

1
2
# 載入 ~/bashrc 的指令
source ~/.bashrc

因為我想讓 bash 相關的指令,都在 bashrc 處理,所以就這樣引入處理了

小結

覺得 mac 的環境設定有點麻煩呢
好像有點體會到 unix-like 中提到的「萬物皆文件」的說法了

參考資料