背景
(今天我是一個美妝博主?)
突然發現自己使用的iterm2終端樣式有些樸素,為了讓她看起來花枝招展的,我決定給她打扮打扮。畢竟每天面對她的時間比物件還多……
效果對比
因為每個人的喜好都不一樣,所以放一張大家都喜歡的效果圖很難,之前我很喜歡黑色主題,後來,我對淺色反倒情有獨鍾,現在我的開發工具idea、vscode等都是使用的淺色,據說對自己的眼睛好。
本文的亮點就是:只告訴你設定方法,最終妝後效果由你自己的審美決定。那上面的紅玫瑰和白玫瑰,你更喜歡哪個呢?評論區為你選擇的玫瑰投票。
配置方法
下面給大家詳細講一下深色主題的設定方法。
安裝oh-my-zsh
oh-my-zsh:Unleash your terminal like never before.
oh-my-zsh 是一款社群驅動的命令列工具,正如它的主頁所說,oh-my-zsh是一種生活方式。它基於 zsh 命令列,提供了主題配置,外掛機制,內建的便捷操作,給我們一種全新使用命令列的方式。所以,安裝oh-my-zsh前提條件:必須安裝 zsh,好像是一句廢話。目前來看macOS系統預設推薦的命令列就是zsh。如果你預設的命令列不是zsh,可以執行以下命令進行更換:
chsh -s /bin/zsh
zsh準備好之後,我們就可以正式開始安裝使用oh-my-zsh啦,下面有兩種方式可供參考:
- 方式一(極力推薦)
通過命令列下載安裝
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
- 方式二
(如果方式一無法安裝,再嘗試該方式)
1、點選下載該指令碼;
2、然後執行install.sh
sh install.sh
安裝美化神器:Powerline
安裝完oh-my-zsh,我們重啟終端,此時的終端在輸入命令時,已經美色側漏,為了讓她變得更華麗,我們繼續化妝。
Powerline:一款比較酷炫的狀態列工具,可以美化終端和vim介面。
這款元件由python開發,因此我們需要本地有python及pip環境,安裝命令如下:
pip install powerline-status
(如果你是pip3,可能需要將pip替換為pip3來安裝)
安裝過後,為了字型樣式更加beautiful,我們需要安裝Powerline的字型庫,官方提供的安裝命令如下:
# clone
git clone https://github.com/powerline/fonts.git --depth=1
# install
cd fonts
./install.sh
# clean-up a bit
cd ..
rm -rf fonts
iterm2更換字型
字型包安裝完成後,我們就需要更改iterm2的字型庫,因為一些介面樣式,使用系統預設自帶的字型會發生亂碼。
我們搜尋meslo,選擇合適的字型大小(S L M)。同樣的,我們使用的其他IDE終端也需要更改,比如mac自帶的終端、idea、vscode,否則也會亂碼,具體步驟可以檢視文末,這裡我們著重講一下Iterm2的配置。
Iterm2更換配色
如下圖所示,總有你喜歡的配色,當然你還可以去官網下載匯入更多配色
設定主題
oh-my-zsh內建了很多主題,在目錄下:
cd ~/.oh-my-zsh/themes
我當前使用的自帶的是agnoster主題,我們可以直接配置。用vim編輯器開啟當前使用者目錄下隱藏檔案.zshrc,將ZSH_THEME
後面欄位改為agnoster
vim ~/.zshrc
重新開啟iTerm2即可看到最新妝後效果,當然也可以檢視更多主題。
設定語法高亮
繼續化妝,我們可以直接使用homebrew安裝zsh-syntax-highlighting外掛,它可以突出顯示命令,有助於在執行命令之前檢查命令,特別是捕獲語法錯誤,簡直不要太好用。
brew install zsh-syntax-highlighting
然後在根目錄下.zshrc中插入下面內容:
source /usr/local/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
source ~.zsh
注意:這裡如果,我說的是如果,source 的時候有提示問題:
compinit:503: no such file or directory: /usr/local/share/zsh/site-functions/_brew_cask
原因有可能就是裝了brew快取記錄導致的,我們執行 brew cleanup
即可修正。
程式碼補全外掛
有一些外掛能讓zsh變得更加酷炫!使用更加方便!比如模糊補全命令,之前我們的命令都是必須字首命中才會補全,現在不用這麼麻煩啦,直接模糊補全!
- 智慧補全:zsh-completions
在oh-my-zsh儲存庫中克隆儲存庫:
git clone https://github.com/zsh-users/zsh-completions ${ZSH_CUSTOM:=~/.oh-my-zsh/custom}/plugins/zsh-completions
注意:你可能在git clone github倉庫時,會遇到SSL_ERROR_SYSCALL相關錯誤,但瀏覽器可以正常訪問github,那是因為clone請求需要LibreSSL來進行加密,但是環境沒有curl-openssl模組,所以我們可以使用homebrew來安裝該模組:
brew install curl-openssl
安裝成功後即可正常加密請求github倉庫資源(如果不行的話來打我)。
修改.zshrc檔案,找到plugins,更新內容:
plugins=(git zsh-completions)
- 歷史命令補全:zsh-autosuggestions
安裝完這個命令,你會驚奇的發現,在敲擊一些命令的時候,會自動提示你的歷史命令!
官方文件提供的zsh-autosuggestions安裝步驟
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
Add the plugin to the list of plugins for Oh My Zsh to load (inside ~/.zshrc):
plugins=(
# other plugins...
zsh-autosuggestions
)
Start a new terminal session.
就不翻譯了,大家照著做就可以體驗一下智慧推薦的歷史命令補全,點選方向鍵->
即可補全,屢試不爽!(不過,我試用過後發現不是很實用,反而會不方便,於是,就在配置中取消了)大家各有所需,可以自由選擇。
Iterm2水印
Iterm2還可以有更多個性化的設定,比如我們可以將遠端伺服器的連線資訊放到profiles裡面,然後通過快捷鍵直接連上遠端伺服器,這樣就不用自己手動寫命令,很是方便。但是這樣會有一個問題,當有多個遠端伺服器的時候,我們不知道當前是在哪一個伺服器上面。這該如何優雅解決呢?
我來告訴你,iterm2支援在終端新增一個自定義的水印來顯示當前的位置!設定方式如下圖所示:
效果就是右上角有水印可以標註我們現在訪問的是哪一個伺服器。
效果圖中笑臉?的配置
細心的朋友會發現,我的終端左側有一個笑臉,這是因為,我想告訴大家:我們面對bug要保持微笑、樂觀的心態,設定方法如下:
我們進入主題目錄
cd ~/.oh-my-zsh/themes
編輯當前使用的主題:agnoster
vim agnoster.zsh-theme
找到prompt_context,按照下圖增加表情:
字型亂碼
細心的朋友還會發現,自帶的終端、idea、vscode會出現字型亂碼的現象,解決辦法就是通過更換字型包來支援這些特殊符號。
- 自帶終端
開啟terminal的偏好設定修改字型包為Meslo:
正常效果如下:
- vscode
同理,我們也需要修改vscode的字型包為Meslo
開啟vscode的設定,然後搜尋terminal font
修改如下圖所示:
- idea
再同理,我們也需要修改idea的字型包為Meslo
開啟idea的設定,然後搜尋console font
修改如下圖:
相關連結
文中提到的跳轉連結總結如下:
- Powerline:https://powerline.readthedocs.io/en/latest/overview.html
- Powerline 字型庫:https://github.com/powerline/fonts
- Iterm2更多配色:https://iterm2colorschemes.com/
- oh-my-zsh更多主題:https://github.com/ohmyzsh/ohmyzsh/wiki/Themes
- zsh-syntax-highlighting官方文件:https://github.com/zsh-users/zsh-syntax-highlighting
- zsh-autosuggestions官方文件:https://github.com/zsh-users/zsh-autosuggestions
最後
當我們費勁千辛萬苦終於搞定終端的樣式後,你會發現這一切努力都是值得的!因為她現在不僅像花瓶一樣好看,而且變得比以前更加實用!你更加離不開她啦!
請大家持續關注微信公眾號:程式設計師小明!!!一個非著名程式設計師的日常。
PS:配置過程中有遇到文中沒提到的問題,歡迎討論!