使用antigen輕鬆配置強大的zsh環境,你值得擁有

zsh是linux下功能最強大的shell了,但是zsh配置起來比較複雜,因此就出現了ohmyzsh這樣的自動配置框架,一行代碼即可使用預配置好的zsh。但是ohmyzsh的可定製性並不強,使用的時候只能用它的那一套。因此又出現了antigen這樣的zsh包管理器,利用它,我們可以非常自由的對zsh進行定製。


使用antigen輕鬆配置強大的zsh環境,你值得擁有


安裝antigen

antigen利用了git來下載項目,所以首先需要先安裝git、zsh、curl等軟件。下面假設你的系統是Ubuntu,如果你使用其他系統,注意將包管理器的安裝命令替換為對應系統的。

<code>apt install git zsh curl/<code>

安裝完必要軟件之後,就可以安裝antigen了。antigen安裝很簡單,就是一個單文件的zsh腳本。我們把它安裝為用戶主目錄中的隱藏文件。

<code>cd ~
curl -L git.io/antigen > .antigen.zsh/<code>

配置antigen

antigen配置起來也比較方便,直接修改你的zshrc文件即可。如果沒有的話,首先在用戶主目錄下創建zshrc文件。

<code>nano ~/.zshrc/<code>

然後將zshrc文件修改類似下面這樣的。前面一部分就是antigen的配置部分,在這裡添加要使用的antigen插件、主題、ohmyzsh插件等等。配置完畢之後使用antigen apply完成配置。接下來就是你自己的shell配置了。

<code>source ~/.antigen.zsh

# 加載oh-my-zsh庫

antigen use oh-my-zsh

# 加載oh-my-zsh中的插件
antigen bundle git
antigen bundle heroku
antigen bundle pip
antigen bundle command-not-found

# 語法高亮功能
antigen bundle zsh-users/zsh-syntax-highlighting

# 代碼提示功能
antigen bundle zsh-users/zsh-autosuggestions

# 自動補全功能
antigen bundle zsh-users/zsh-completions

# 加載主題
antigen theme robbyrussell

# 保存更改
antigen apply

# zshrc的其他部分,你的自定義配置,例如shell縮寫
alias ga='git add .'/<code>

配置完畢之後就可以輸入zsh進入zsh交互環境了。第一次運行的時候,antigen會開始下載和同步上面配置的各種插件。稍等片刻就可以進入到配置好的zsh環境中了。利用zsh的自動補全、代碼提示、語法高亮等功能,我們可以非常舒適的使用命令行。


如下圖所示,輸入命令的時候,會實時顯示命令是否正確,命令輸入正確以後就會顯示綠色;而且在命令輸入過程中也可以進行補全, 補全還可以用於子命令和參數,zsh還會根據已輸入的字符提供可用選項。這一切都是bash和其他shell不能提供的。


使用antigen輕鬆配置強大的zsh環境,你值得擁有

antigen下載的時候會從github克隆很多項目,如果你網絡不好的話,很容易失敗,導致進入一個空空如也的zsh環境。如果想要讓antigen重新下載的話,刪除它的緩存目錄即可,緩存目錄位於用戶主目錄下,也是隱藏文件夾。

<code>rm -rf .antigen/<code>

使用ohmyzsh的主題和插件

antigen和ohmyzsh完全兼容,所以可以非常輕鬆的使用ohmyzsh的主題和插件。利用這些主題和插件,我們可以輕鬆地讓終端更加強大。


先來看看ohmyzsh的插件,插件位於源碼倉庫的plugins文件夾下。插件一般提供相關命令的補全和提示功能,有些插件還提供了常用命令的縮寫,可以簡化我們輸入的代碼。當然,如果添加太多插件的話,會影響終端的響應速度,所以大家最好只添加自己常用的插件。

<code>https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/<code>

例如我經常使用git、maven、gradle、npm等功能,就可以把ohmyzsh中的對應插件添加到antigen中,這樣就可以享受到對應命令提示和補全的功能了。

<code>antigen bundle git 

antigen bundle mvn
antigen bundle gradle
antigen bundle npm/<code>

ohmyzsh還提供了豐富的主題,光是內置的主題就有幾十個之多,大家可以按自己喜好進行選擇。

<code>https://github.com/ohmyzsh/ohmyzsh/wiki/Themes/<code>

下面是ohmyzsh的主題頁面的部分截圖,大家可以尋找自己喜愛的主題。

使用antigen輕鬆配置強大的zsh環境,你值得擁有

配置目錄間快捷跳轉

ohmyzsh的z插件可以輕鬆記錄你訪問過的目錄,這樣,你僅僅需要輸入目錄名而非完整路徑即可完成跳轉。

<code>z nginx
# 相當於
cd /etc/nginx/<code>

但是z插件是用shell實現的,速度非常慢。因此有大神用lua腳本重新實現了一個速度更快功能更強大的版本,z.lua。它是用lua實現的,所以首先需要安裝lua。

<code>apt install lua5.3/<code>

然後將下面的代碼片段添加到antigen中即可。

<code>antigen boundle skywind3000/z.lua
antigen boundle changyuheng/fz

function _z() { _zlua "$@"; }/<code>

關於z.lua的文檔可以參考其官方Github。

<code>https://github.com/skywind3000/z.lua/blob/master/README.cn.md/<code>

配置powerline10k主題

ohmyzsh內置的主題雖然豐富,但是速度一般、功能不是很足。如果你打開了一個大型git項目,默認的主題顯示速度可能就跟不上了。powerline10k是一個優秀的主題,不僅提供了大量自定義外觀可以設置,而且還提供了instant模式,異步加載並顯示主題,保證你終端的使用體驗。


要使用powerline10k主題非常簡單,添加下面的antigen行即可。

<code>antigen theme romkatv/powerlevel10k/<code>

第一次使用的時候,powerline10k會開啟一個交互環境,引導我們設置主題樣式,最後還會詢問我們是否開啟instant模式。這一切都非常簡單,只需選擇是否即可。設置完成以後,powerline10k會將配置寫入zshrc文件中。


以下是我的設置樣式,我比較喜歡平行四邊形這種樣式,稜稜角角的比較好看。


使用antigen輕鬆配置強大的zsh環境,你值得擁有


使用antigen輕鬆配置強大的zsh環境,你值得擁有

進入Git倉庫的時候,顯示的樣式

大家的shell環境是怎麼配置的呢?如果有什麼好東西的話,也可以在評論區一起分享。覺得有用的話,關注+轉發,謝謝各位了!


分享到:


相關文章: