這可不是只有畫面變 Colorful 了,
連 git 分支都能幫你顯示、甚至貓咪都出動了,
按 tab 鍵的效果也有進一步的功能,擁有更棒的寫程式體驗。
從此 Iterm 就能取代 mac 終端機了。
Powerline是用python開發出的 vim命令列與shell的外掛
用Homebrew追蹤遠端cask-fonts
因為 nerd 收錄(patched)的特殊字元比powerline還要多,
所以若之後遇到Powerline無法顯示的亂碼時,可以轉成nerd試試
在這裡我們挑一個powerline的字體安裝
在這裡我們挑一個nerd的字體安裝
字體安裝完後先按command+Q退出 Iterm,再重新打開 Iterm
點選 Preference -> Profiles -> Text -> 選擇Font,就能更改字型啦~
因為 macOS 2018 Mojave內建有zsh,可以不用做以下數行指令
只要確認zsh存在於/etc/shells下,change shell就行了
退出shell重開,原本的$字號變成%符號
此時在 Terminal中,按tab按鍵會有"遍歷檔案名稱"的效果
原本%符號變成 → ~
→ ~ 表示路徑在HOME目錄下
→ / 表示在根目錄下
→ 在其他目錄
此時可以看到 家目錄底下多了一個 ~/.oh-my-zsh 的資料夾
歐歐
安裝完後遇到問題,跳出一大串提示
[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] 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.
因為安全的問題,
要禁用上述所列出來的檔案及資料夾的 group、others 的文件修改權限 (以確保只有root跟文件擁有者可以修改文件),或者直接禁用安全檢查。
換言之就是把提示列出的所有文件權限改成755 ($ chmod 755 ...),但因為比較麻煩,所以在這裡直接禁用檢查功能。
在.zshrc檔的第一行添加 ZSH_DISABLE_COMPFIX=true
再重新載入
此時按tab按鍵會有遍歷檔案名稱+選取顏色及反白的效果
到這個步驟,若沒有安裝powerline外掛 都還不會有文字亂碼,
因為還沒有要顯示特殊字元
用Homebrew 安裝 Iterm2
Iterm2 是具有像tmux指令那樣視窗分割、功能強大的 仿真Terminal,
當然執行速度上會比mac內建的 Terminal 稍慢一點點點,但在使用上便利性十足。
當然執行速度上會比mac內建的 Terminal 稍慢一點點點,但在使用上便利性十足。
iTerm2 is an open source replacement for Apple's Terminal. It's highly customizable and comes with a lot of useful features.
$ brew tap homebrew/cask
$ brew install --cask iterm2
從此 Iterm 就能取代 mac 終端機了。
安裝 Powerline font字型
Powerline是用python開發出的 vim命令列與shell的外掛
Powerline is a statusline plugin for vim, and provides statuslines and prompts for several other applications, including zsh, bash, fish, tmux, IPython, Awesome, i3 and Qtile.
用Homebrew追蹤遠端cask-fonts
$ brew tap homebrew/cask-fonts要先安裝svn才能安裝字體
$ brew install svn搜尋有哪些powerline、nerd字體
因為字體名稱有可能會隨著時間版本而改變(已經變過好幾次)
所以會需要透過search確認現在的名稱來安裝
因為 nerd 收錄(patched)的特殊字元比powerline還要多,
所以若之後遇到Powerline無法顯示的亂碼時,可以轉成nerd試試
$ brew search powerline
$ brew search nerd
在這裡我們挑一個powerline的字體安裝
$ brew install --cask font-source-code-pro-for-powerline
在這裡我們挑一個nerd的字體安裝
$ brew install --cask homebrew/cask-fonts/font-sauce-code-pro-nerd-font
字體安裝完後先按command+Q退出 Iterm,再重新打開 Iterm
點選 Preference -> Profiles -> Text -> 選擇Font,就能更改字型啦~
安裝zshell
因為 macOS 2018 Mojave內建有zsh,可以不用做以下數行指令
$ brew install zsh
$ which zsh
/usr/local/bin/zsh$ sudo sh -c "echo $(which zsh) >> /etc/shells"
$ chsh -s $(which zsh)
只要確認zsh存在於/etc/shells下,change shell就行了
$ cat /etc/shells
$ chsh -s /bin/zsh
退出shell重開,原本的$字號變成%符號
% echo $0
% echo $SHELL
此時在 Terminal中,按tab按鍵會有"遍歷檔案名稱"的效果
安裝 oh-my-zsh
% sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
原本%符號變成 → ~
→ ~ 表示路徑在HOME目錄下
→ / 表示在根目錄下
→ 在其他目錄
此時可以看到 家目錄底下多了一個 ~/.oh-my-zsh 的資料夾
歐歐
安裝完後遇到問題,跳出一大串提示
[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] 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.
因為安全的問題,
要禁用上述所列出來的檔案及資料夾的 group、others 的文件修改權限 (以確保只有root跟文件擁有者可以修改文件),或者直接禁用安全檢查。
換言之就是把提示列出的所有文件權限改成755 ($ chmod 755 ...),但因為比較麻煩,所以在這裡直接禁用檢查功能。
在.zshrc檔的第一行添加 ZSH_DISABLE_COMPFIX=true
→ ~ vim ~/.zshrc
再重新載入
→ ~ source ~/.zshrc
此時按tab按鍵會有遍歷檔案名稱+選取顏色及反白的效果
到這個步驟,若沒有安裝powerline外掛 都還不會有文字亂碼,
因為還沒有要顯示特殊字元
現在已有最新版本 Powerlevel10k, 速度及效能比 powerlevel9k快上許多,且配置設定兼容powerlevel9k 以下三行指令 for 安裝 powerlevel10k
Powerlevel10k is a theme for Zsh. It emphasizes speed, flexibility and out-of-the-box experience.
$ git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~/powerlevel10k
$ echo 'source ~/powerlevel10k/powerlevel10k.zsh-theme' >>! ~/.zshrc
將主題加進環境變數
接著CMD+Q 退出 Iterm,再重開
P10K有非常人性化的介面可以調配設定,按著英文敘述一步步往下選擇執行即可套用樣式
$ p10k configure
zsh-autosuggestions
這是ZSH上的一個套件,在你Terminal輸入指令時會依照 history(以前輸入過的同樣指令)幫你自動完成。
It suggests commands as you type based on history and completions.
Requirements: Zsh v4.3.11 or later
下載autosuggestions到目錄底下的plugins位置
$ git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
$ vim ~/.zshrc
找到.zshrc檔案中 plugins參數這一行(如果沒有的話自己新增)
plugins=(zsh-autosuggestions)如果有多個套件,則以空格隔開
plugins=(git zsh-autosuggestions)
之後重新載入
$ source ~/.zshrc便有自動完成提示的功能,當灰字出現時直接 按 →(方向鍵右)就能自動完成。
以下為舊版 powerlevel9k 文章
以及將 p9k 升級到 p10k 的步驟過程
安裝 powerlevel9k 主題
powerlevel9k 是ZSH上很酷炫的主題,
可以在命令列顯示時間、電力、CPU memory使用率、其他電腦的資訊等等。
Powerlevel9k is a theme for ZSH which uses Powerline Fonts. It can be used with vanilla ZSH or ZSH frameworks such as Oh-My-Zsh, Prezto, Antigen, and many others.下載 powerlevel9k
→ ~ git clone https://github.com/bhilburn/powerlevel9k.git ~/.oh-my-zsh/custom/themes/powerlevel9k
載下來後,
若要切換主題顏色,則修改.zshrc 裡面的ZSH_THEME變數
→ ~ vim ~/.zshrc預設為 ZSH_THEME="robbyrussell"
可改成 ZSH_THEME="agnoster"
或可改成 random、ys、simple、bira 來玩看看
所有的主題配色可以在這裡找到 https://github.com/ohmyzsh/ohmyzsh/wiki/Themes
重新載入、立即套用
→ ~ exec $SHELL
還有一大堆參數設定可調整,例如左側、右側出現的提示等等
詳見Github網址
參考網路上其他人的配置
(~/.zshrc)
ZSH_THEME="powerlevel9k/powerlevel9k"
# 左側
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(context dir dir_writable vcs vi_mode)
# 右側
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(status background_jobs history ram load time)
# 若當前登入的帳號為你的帳號 xxx,就不用特別顯示出來
DEFAULT_USER="g2020070116"
# 使用 nerd font 時可以顯示更多 icon。詳情請參考 powerlevel9k wiki
POWERLEVEL9K_MODE='nerdfont-complete'
prompt_context() {
if [[ "$USER" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then
prompt_segment black default "%(!.%{%F{yellow}%}.)$USER"
fi
}
→ ~ exec $SHELL
→ ~ source ~/.zshrc
若已安裝P9K 想升級P10K的話
$ git clone --depth=1 https://github.com/romkatv/powerlevel10k.git $ZSH_CUSTOM/themes/powerlevel10k
修改.zshrc中的 ZSH_THEME參數為 powerlevel10k/powerlevel10k
$ sed 's/powerlevel9k/powerlevel10k/g' -i ~/.zshrc
$ exec zsh
重新啟動ZSH