zsh – 給你的Mac不同體驗的Terminal!

zsh - 給你的Mac不同體驗的Terminal!
看到@sofish同學寫了一篇關於把Mac下的bash換成zsh的文章,那麼我也來說說我用zsh的體驗以及一些小經驗。
大部分人都偏愛使用bash,或許說偏愛有點不恰當,因為很多系統比如絕大部分的Linux發行版或者Mac OS系統都是自帶的bash,而一般人也就當做terminal來使用了,並沒有什麼太大的差別。Bash其實已經比Csh之流好用太多了,但是Bash也有很多不盡人意的地方比如像自動補全的功能不夠強大,切換到較長路徑下不太方便等問題。後來我用了zsh,因為zsh有強大的自動補全功能,能自動補全命令、參數、文件名、進程、用戶名、變數、許可權符等。而且能自定義最前面的提示符,比如我圖中的”$”,是的,我愛US Dollar,我愛美元…並且還支持路徑別名功能,比如要切換到一個很長的路徑下~/Sites/Doit/www.doit.im,可以設置成~Doit。而且Zsh兼容絕大部分的主流shell比如bash,這樣我們其實根本不需要太多的學習成本就可以很快的切換過來,當然如果你不需要配置過多的增強功能的話。
既然Zsh如此強大,那麼我們為何不馬上開始介紹Zsh的功能呢?其實說來慚愧,我用Zsh目前也是很皮毛,除了改改主題之類也就沒有太多的研究了。Zsh雖然功能強大,但是如果要自己配置上手的話恐怕不是特別容易,所以很多人直接就放棄了這個玩意。但是,國外有個人在Github上有個開源項目就是讓你快速上手Zsh的,它叫on my zsh。只要按照它介紹的提示一步步操作便可馬上享用Zsh了。那麼我也就簡單介紹下如果把Mac下的bash替換成Zsh吧。

oh-my-zsh 這個項目可以正常運行在目前最新的zsh上,最低版本建議是4.3.9。

自動安裝:

當然,如果你信任這個開源項目作者的話你可以嘗試使用自動安裝的方法。

wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh

手動安裝:

1. 克隆這個項目到本地(前提是你得有裝git)

git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh

2. 創建一個zsh的配置文件
注意:如果你已經有一個~/.zshrc文件的話,建議你先做備份。使用以下命令

cp ~/.zshrc ~/.zshrc.orig

然後開始創建zsh的配置文件

cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc

3. 設置zsh為你的默認的shell

chsh -s /bin/zsh

4. 重啟並開始使用你的zsh (打開一個新的終端窗口便可…)

至此,大功告成。

當然你可能還需要把你的bash的配置文件(~/.bash_prorile或者~/.profile等)給拷貝到zsh的配置文件~/.zshrc里,因為zsh兼容bash,所以你大可放心把bash的配置粘貼到~/.zshrc底部便可。

PS:如果你要問我截圖中的主題是什麼風格的話,這個其實是另外一個開源項目里的,其實也是oh-my-zsh的一個分支版本,具體地址是https://github.com/sjl/oh-my-zsh

PS的PS:如果你要更換你的主題的話,只要修改~/.zshrc里的export ZSH_THEME=”prose”引號部分即可。究竟有哪些主題可以使用呢?這裡有一份詳細的主題列表以及截圖,挑選你最喜歡的風格去用吧。

PS的PS的PS:並且它支持的插件也很多,比如git,vi,rails,brew等等等…這裡有一篇《My Extravagant Zsh Prompt》同時推薦大家看看,如果你想更深入了解zsh的話。比如我的截圖中其實增強了路徑的顯示(顯示當前hg的分支以及所在路徑)

PS的PS的PS的PS(2011-03-09 11:46):當然文中提到的oh-my-zsh的主題並不是指配色主題,而是zsh的顯示風格以及搭配它的plugins的配置信息。如果你想實現我截圖中的樣子就需要配置你的Terminal的顏色了。不過Mac OS X的終端並不支持256色模式。如果你想得到更多色彩美觀的終端樣子只能使用16 ANSI。但是不夠強大的Mac下的Terminal.app並不能改變16 ANSI顏色。你只能修改默認的文本顏色以及背景。真是shit啊!如果你想得到和我截圖一樣的終端顏色,推薦你閱讀這篇文章《Candy Colored Terminal》。我使用的主題是prose,支持顯示hg prompt插件的信息,增強了hg的目錄顯示方式,我覺得不錯。

祝大家用得愉快!