使用 Zsh 來美化終端機 terminal,VS Code 無法用 iTerm ,但可以結合其他插件更美觀與順手。
在下面的終端機的指令中,$ 只是表示是終端機指令的開頭,不需要複製輸入到終端機中。
安裝 Homebrew
Homebrew 是 Mac OSX 上的的套件管理工具,是方便安裝管理 OSX 裡需要用到但預設沒安裝的套件。Homebrew 的安裝只需要打開終端機,輸入:
1 | $ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" |
輸入指令後會出現提示訊息 Press RETURN to continue or any other key to abort,這是指按回車鍵繼續或任意鍵中止,所以一定要按下 Enter 鍵讓終端機執行下載的指令,不然其他鍵點按就會跳出。
brew --version 下指令確認是否有安裝成功,如果出現版本就就是成功安裝 Homebrew。
安裝 iTerm2
iTerm2 是一個可以用來取代 MAC 原生終端機的工具,擁有許多更方便的功能和特色,只需到官網下載安裝就可以了。
1 2 | $ brew cask install iterm2 brew install iterm2 // 新版指令 |
iTerm2 配色主題下載
iTerm2 提供非常多的配色主題可以下載,可以到 iterm2 color schemes 的網站選擇喜歡的配色,右上角有下載的標示可以整包下載下來,下面則會顯示各種配色。解壓縮後在 schemes 資料夾中有許多副檔名為 .itermcolors 的配色檔可以載入。
iTerm2 套用配色
喜歡的配色後,打開 iTerm2 後按快捷鍵 cmd + i ,選擇上方名為 color 的頁籤,在右下方的 Color Presets 中透過 import 匯入配色後再點選一次 Color Preset 就可以選取:
系統預設的 terminal 終端機,可以到資料夾 tarminal 內,後面 .terminal 都是系統預設的 terminal 終端機主題。
先安裝 ZSH
安裝 ZSH ,這是用來取代 BASH 的一種工具,打開 Terminal 輸入, zsh --version 確認安裝成功
1 | $ brew install zsh zsh-completions |
將預設終端機窗口(非 iTerm) 改為 ZSH,一樣在終端機輸入:
1 2 | $ sudo sh -c "echo $(which zsh) >> /etc/shells" $ chsh -s $(which zsh) |
輸入完指令後退出 預設終端機窗口(非 iTerm) ,輸入 echo $SHELL,確任有成功變更 SHELL 為 ZSH 的話應該會看到 /usr/local/bin/zsh
安裝 Oh My ZSH
Oh My Zsh 是一個用來管理 ZSH 設定檔(configuration)的框架,提供了很多的外掛(plugin)和主題(theme)可以選擇。
1 | $ sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" |
1 | open ~/.zshrc |
接著會打開 zsh 的設定檔,找到 ZSH_THEME=”…”,將這段的內容改成下面這段後,在透過 cmd + s 存檔:
1 | ZSH_THEME="agnoster" |
20201108-安裝時終端機出現提示:
123456789101112131415161718 Last login: Sun Nov 8 01:18:24 on ttys000[oh-my-zsh] Insecure completion-dependent directories detected:drwxrwxr-x 7 jimmy-wu admin 224 11 8 00:53 /usr/local/share/zshdrwxrwxr-x 4 jimmy-wu admin 128 11 8 00:14 /usr/local/share/zsh/site-functions[oh-my-zsh] For safety, we will not load completions from these directories until[oh-my-zsh] you fix their permissions and ownership and restart zsh.[oh-my-zsh] See the above list for directories with group or other writability.[oh-my-zsh] To fix your permissions you can do so by disabling[oh-my-zsh] the write permission of "group" and "others" and making sure that the[oh-my-zsh] owner of these directories is either root or your current user.[oh-my-zsh] The following command may help:[oh-my-zsh] compaudit | xargs chmod g-w,o-w[oh-my-zsh] If the above didn't help or you want to skip the verification of[oh-my-zsh] insecure directories you can set the variable ZSH_DISABLE_COMPFIX to[oh-my-zsh] "true" before oh-my-zsh is sourced in your zshrc file.解决方法
12 chmod 755 /usr/local/share/zshchmod 755 /usr/local/share/zsh/site-functions
Terminal 與 iTerm 的 ZSH 字體修改
在安裝的過程中,如果你發現出現一些看不懂的文字或亂碼時,很可能是因為沒有相對應的字體,因此我們要下載字體。
下載字體檔:Meslo(截圖中所使用的)或者也可以到 Powerline fonts @ github 中找到其他你要的字體後,在 「view raw」上點右鍵選擇「另存連結」將字體檔下載後並安裝。
iTerm2 中套用字體(Meslo) >> iTerm –> Preferences –> Profiles –> Text –> Change Font
安裝與使用 powerlevel9k 主題
資料來源:[Tool] Mac + iTerm 2 + Oh My Zsh + Powerlevel9k 設定
安裝字體 Nerd-Fonts
1 2 3 4 | brew tap caskroom/fonts // 20200212 重新安裝查資料時說路徑有改 brew tap homebrew/cask-fonts |
1 | brew cask install font-hack-nerd-font |
iTerm 設定字體
進入 iTerm 的設定 > Profiles > Text > Change Font > 選擇 Knack Nerd Font 字體 Regular 大小 18pt,完成後重新啟動 iTerm ,設定完成。
安裝 Powerlevel9K
1 | git clone https://github.com/bhilburn/powerlevel9k.git ~/.oh-my-zsh/custom/themes/powerlevel9k |
打開 ZSH 設定檔,會是個純文字文件:
1 | $ open ~/.zshrc |
1 2 3 4 5 6 7 8 9 10 11 | ZSH_THEME="powerlevel9k/powerlevel9k" POWERLEVEL9K_MODE='nerdfont-complete' POWERLEVEL9K_SHORTEN_DIR_LENGTH=2 POWERLEVEL9K_TIME_FORMAT="%D{%H:%M}" # 沒在用 git 的人這兩行不重要 POWERLEVEL9K_VCS_GIT_ICON='\uf1d3' POWERLEVEL9K_VCS_GIT_GITHUB_ICON='\uf09b' POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=( os_icon dir dir_writable vcs) POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(status command_execution_time time) |
1 | source ~/.zshrc |
最後的畫面
其他外掛或建議
Auto Suggestions (for Oh My ZSH)
Auto Suggestions 會根據你過去所輸入的指令來提示要輸入的內容。
1 | $ git clone git://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions |
接著打開 ZSH 設定檔,找到 plugins="" 的地方,在 plugins 的欄位中加入 zsh-autosuggestion 後存檔(若有多個 plugin 則以空白分開,zsh-autosuggestions就是提示指令外掛),例如:
1 2 3 | plugins=( git brew node brew npm zsh-autosuggestions ) |
有時候你的背景色和提是的文字會太過接近,以致於你看不到 autosuggestions 的文字,這時候需要去設定顯示的文字。一樣先在終端機輸入以下文字,以開啟設定檔:
1 | open $ZSH_CUSTOM/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh |
打開設定檔後,在文件中找到這行(預設會是 fg=8),這就是給終端機所使用的256色碼,你可以改成自己喜歡的顏色,這裡我用 fg=240 感覺比較合適。
1 | ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=240' |
接著,只要你輸入過相關的文字,下次再次打入同樣的文字的時候,就會產生自動建議的文字,按下→後就會自動帶入,像是這樣的效果:
程式碼高亮(Syntax Highlighting)
在終端機輸入下面這段,下載 Syntax Highlighting:
1 | $ brew install zsh-syntax-highlighting |
接著一樣打開 ZSH 設定檔:
1 | $ open ~/.zshrc |
在設定檔的最下面加上這段
1 2 | # For zsh syntax-highlighting source /usr/local/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh |
客制化 Prompt
在終端機中預設的 prompt 會是”user@hostname”,非常長一串,我們可以透過以下的方式讓那一長串不要顯示出來。
1 | $ open ~/.zshrc |
找個地方加入下面這段,DEFAULT_USER 中 “yourname” 要填的是你使用者的名稱,如果不知道使用者的名稱的話,可以在終端機輸入 whoami,
1 2 3 | $ whoami DEFAULT_USER="" |
VSCode 安裝專用字型
1 2 3 4 5 | $ git clone https://github.com/powerline/fonts.git --depth=1 $ cd fonts $ ./install.sh $ cd .. $ rm -rf fonts |
Powerline 字型正 iTerm 的字型不能空用,在 VSCode 內要用自已的字體 (Powerline字型) 不然畫面無法正常顯示。
確定 安裝 oh my zsh 與 Zsh Theme 是如有安裝正確,如果使用 iTerm 有設定過可正常使用的話機本上沒問題。
進入 VS Code > [喜好設定] > [設定](Mac快速鍵 ⌘ + ,)> [整合式終端機]
1 2 3 4 5 6 7 8 | { "terminal.integrated.fontFamily": "Source Code Pro for Powerline", // 使用 powerlevel9k 主題加入字型 Hack Nerd Font, "terminal.integrated.shell.osx": "/bin/zsh", // VSCode 的預設內建換成 zsh "terminal.integrated.fontSize": 14 // 可大於14以上效果較好... } |
查看你的系統有幾種 shell
1 | cat /etc/shells |
1 2 3 4 5 6 7 | /bin/bash /bin/csh /bin/ksh /bin/sh /bin/tcsh /bin/zsh /usr/local/bin/zsh |
修改 zsh 設定開啟程式
1 | $ open ~/.zshrc |
將 macOS 相關應用程式,配置到 zsh 中命令行啟動
.zshrc 文件中加入,文件修改完成存檔後,終端機需要退出在重啟才會套用設定。
1 | $ open ~/.zshrc |
8-2-1-vs code
1 2 3 4 5 6 7 8 9 10 11 12 | # 指令開啟 VS Code # 輸入指令 code function code { if [[ $# = 0 ]] then open -a "Visual Studio Code" else local argPath="$1" [[ $1 = /* ]] && argPath="$1" || argPath="$PWD/${1#./}" open -a "Visual Studio Code" "$argPath" fi } |
這樣在 zsh 中可以使用下面的命令打開 Visual Studio Code
code – 打開 Visual Studio Code
code . – 在 Visual Studio Code 中打開當前目錄
code somefile – 在 Visual Studio Code 中打開 somefile (somefile 為指定檔案名稱,如果沒此檔的話就是新建。)
SourceTree
1 2 3 4 5 6 7 8 9 10 11 12 | # 指令開啟 Sourcetree # 輸入指令 tree function tree { if [[ $# = 0 ]] then open -a "Sourcetree" else local argPath="$1" [[ $1 = /* ]] && argPath="$1" || argPath="$PWD/${1#./}" open -a "Sourcetree" "$argPath" fi } |
1 | alias sourcetree='/Applications/Sourcetree.app/Contents/MacOS/Sourcetree' |
SublimeText
1 | alias subl='/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl' |
測試 Terminal 輸入 subl . 是否使 Sublime 打開