MAC終端zsh配置


MAC平台下的zsh還是最好用的,不過配置起來確實略微麻煩,尤其是涉及到FQ訪問gitHub比較麻煩,沒有網絡還真不行。

1 下載安裝iTerm2

官網地址: http://www.iterm2.com/

設置iTerm2無限滾屏:怕錯過什么重要信息,那設置成無限滾屏吧!

Preferences - Profiles - Terminal - Scrollback Buffer - Unlimited scrollback

 【常用快捷鍵

  • ⌘ + k (command + k): 清屏(有時需要查找特定信息,避免上一次輸出的干擾,可以先清屏再執行)
  • ⌃ + a (control + a):光標放行首(麻麻再也不擔心我把光標移動到最后要靠手速了。)
  • ⌃ + e ( control + e):光標放行尾
  • ⌘ + f (command + f):(調出查找框)查找
  • ^ + c (control + c):取消當前行(當前行已經輸入很多了,想刪除,不需要按住delete鍵逐字符刪滴- -)
  • ⌘ + enter (command + enter):切換全屏(沉浸於shell中,慢慢愛上敲回車的感覺……但是,忽地一下,shell鋪滿屏幕了!如果不知道這個快捷鍵的話,有點兒秀不起來呀。——個人感覺,手速快的時候,誤觸還是時有發生滴。)

2 安裝HomeBrew

大部分Mac系統已經自帶Homebrew,查看是否安裝方法:

brew --version

若提示無brew命令,則執行如下命令安裝,可以參照官網https://brew.sh/

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

3 更換終端默認Shell為zsh

Bash作為大多數系統默認安裝的Shell,大家都多少有所接觸,Zsh和Bash類似都是一個Shell,但是Zsh更注重用戶體驗和與人的交互,OS X默認也安裝好了Zsh,然而你想自己從頭開始配置一個順手的Zsh是比較浪費時間的,有人已經幫我們配置好了,這個流行的Zsh配置叫---Oh My ZSH!,直觀的效果如下圖所示,代碼開源在github

Mac OS X默認已經安裝好了Zsh,你可以打開終端,輸入zsh --version來確認,如果沒有安裝,請參考這個文檔

打開終端輸入下面的命令,切換默認Shell為Zsh:

chsh -s /bin/zsh

關閉終端重新打開后,你將默認使用zsh作為終端Shell。然而你會發現,終端並沒有變得多酷炫,接着往下走,安裝Oh My ZSH!

4 安裝oh-my-zsh

使用以下命令可以安裝:

sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

我自己安裝的時候是開了阿里郎代理,但是終端不知道為啥總是報錯說 SSH:443 拒絕訪問。但是可以直接用如下命令把倉庫下載下來(或者直接下載zip文件也行):

git clone git@github.com:ohmyzsh/ohmyzsh.git

然后把上面那個install.sh 直接用瀏覽器打開復制到文件中,直接用sh執行。腳本中的邏輯是先把 ohmyzsh.git 克隆到~/.oh-my-zsh 目錄,然后執行后面到初始化設置邏輯。既然倉庫已經下載並拷貝過去了,那么就將install.sh 中下載和檢查到邏輯注釋掉,僅執行后半部分的初始化設置邏輯好了。

5 修改oh-my-zsh 主題

ls ~/.oh-my-zsh/themes
vim ~/.zshrc           // 修改 ZSH_THEME的值,經典配色是agnoster
source ~/.zshrc        // 生效

// 如果想獲得更多的主題可以從https://github.com/robbyrussell/oh-my-zsh/wiki/Themes#agnoster下載

6 解決亂碼問題

由於agnoster和一些其他主題顯示需要Powerline字符集支持,需要下載新的字符集

git clone git@github.com:powerline/fonts.git
cd fonts
./install.sh

打開iTerm2:偏好設置 -> Profiles -> Text -> change Font -> Roboto Mono for Powerline

7 隱藏zsh前面用戶名/主機名

修改vim ~/.zshrc文件,在文件底部增加:

prompt_context() {}

只保留用戶名,隱藏主機名

prompt_context() {
  if [[ "$USER" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then
    prompt_segment black default "%(!.%{%F{yellow}%}.)$USER"
  fi
}

只保留主機名,隱藏用戶名

prompt_context() {
  if [[ "$USER" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then
    prompt_segment black default "%(!.%{%F{yellow}%}.)$HOST"
  fi
}

8 厲害的zsh插件

(1) AutoJump  -  從任意目錄一鍵跳轉任意目錄

下面着重介紹一個好用的插件AutoJump,舉個連個栗子介紹下AutoJump的強大。

正常情況下需要一層層敲入

cd /Users/fanyu/Workspace/youku/new_reform/AppWrapper/OnePlayer

如果用autojump 則只需敲 j OneP ,兩下shift 會自動生成關聯,選擇對應數字就能進入。autojump 支持在任意目錄進入任意目錄

【安裝方法可參考】https://github.com/wting/autojump/wiki

(2) zsh-autosuggestions

計算題:我輸入了echo hello指令,然后又輸入了19條指令。接着又輸入echo world指令。這個時候,我想找到歷史指令echo hello,需要按幾次上鍵?
答案是:輸入echo按*兩下*上鍵就可以啦。

autosuggestions插件會記錄已經執行過的的指令。下次輸入指令的時候,會智能提示。
額外地,只輸入幾個字符,然后按上鍵查找歷史指令的時候,結果集合里所有的指令都是以已輸入字符開頭的。

(3) zsh-syntax-highlighting

問題:mkdirmkdri有什么不一樣。有時候,敲錯了指令,但是出錯了才意識到。zsh-syntax-highlighting可以提前發現這個小問題

zsh-syntax-highlighting插件做了一件極簡的事情:認識的指令顯示為綠色,不認識的指令顯示為紅色。(當然,不認識的指令繼續按回車,得到的將是:command not found錯誤提示。)
額外地,它還能檢查括號是不是匹配。

8.1 安裝autojump

brew install autojump

 修改~/.zshrc文件,找到plugins字段,添加autojump。

默認是這樣的:
plugins=(
  git
)

修改為:
plugins=(
  git
  autojump
)

 8.2 安裝auto suggestions

git clone git://github.com/zsh-users/zsh-autosuggestions ~/Documents/.zsh-suggestions

ln -s ~/Documents/.zsh-suggestions ~/.oh-my-zsh/plugins/zsh-autosuggestions

修改~/.zshrc文件,找到plugins字段,添加suggestions。修改后的樣子大概是這樣:

plugins=(
  git
  autojump
  zsh-autosuggestions
)

 8.3 安裝syntax hightlighting

git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ~/Documents/.zsh-syntax-highlighting

ln -s ~/Documents/.zsh-syntax-highlighting ~/.oh-my-zsh/plugins/zsh-syntax-highlighting

 修改~/.zshrc文件,找到plugins字段,添加highlighting。修改后的樣子大概是這樣:

plugins=(
  git
  autojump
  zsh-autosuggestions
  zsh-syntax-highlighting
)

9 終極選擇:ohmyzsh + powerlevel10k

Oh My Zsh有上百個自帶主題,以及許許多多的外部主題。目前來看使用量教多的是 powerlevel9k,它的初始效果是這樣的。

這個主題我也用了挺長一段時間,用上它的感覺就是「媽的,雖然好用,但是響應速度讓我很不爽,明明沒有加載很多插件還是慢」。這個感覺直到我逛主題市場發現 powerlevel10k 后就再也不復存在了。

它的介紹是這樣的,注意關鍵字:兼容 Powerlevel9k,10-100倍的性能提升!

Powerlevel10k is a backward-compatible reimplementation of the popular Powerlevel9k theme (see above) with 10-100 times better performance. If you like the looks of Powerlevel9k but feeling frustrated by its slow prompt, simply replace your powerlevel9k theme with powerlevel10k and enjoy responsive shell like it's 80's again! Powerlevel10k uses the same configuration options as Powerlevel9k and produces the same results. It's simply faster.

下載安裝的方法還是Git倉庫的配置:

git clone https://github.com/romkatv/powerlevel10k.git $ZSH_CUSTOM/themes/powerlevel10k

# 然后設置 .zshrc 中的變量 ZSH_THEME
Set ZSH_THEME=powerlevel10k/powerlevel10k in your ~/.zshrc.

安裝完 powerlevel10k 后你可能會發現有亂碼,這是因為你終端字體不支持那么多的字符,這就需要使用擴展字體了。

字體的安裝,我們可以參考 powerlevel9k 的官方介紹:https://github.com/bhilburn/powerlevel9k/wiki/Install-Instructions#step-2-install-a-powerline-font

安裝 powerline 字體有四種方式:

Option 1: Install Powerline Fonts

不介紹,請看官方文檔

Option 2: Use a Programmer Font

不介紹,請看官方文檔

Option 3: Install Awesome-Powerline Fonts

不介紹,請看官方文檔

Option 4: Install Nerd-Fonts

Nerd 字體應該是支持字形最多的,所以不用多想,安裝它就好了!

github 上也有詳細的安裝介紹文檔:https://github.com/ryanoasis/nerd-fonts#font-installation

提示】如果最后發現zsh的效果不太好,或者想更換一下設置,可以重新執行一遍:p10k configure


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM