1. 程式人生 > >mac下安裝配置和使用zsh+autojump

mac下安裝配置和使用zsh+autojump

1,安裝zsh,執行

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

2,安裝autojump,執行

brew install autojump

這一步之前需要先安裝brew

3,安裝完autojump後,執行下面的命令

[[ -s ~/.autojump/etc/profile.d/autojump.sh ]] && . ~/.autojump/etc/profile.d/autojump.sh

4,將zsh設定成預設的shell

chsh -s /bin/zsh

ok,重新開啟shell就可以用了。

以下內容摘選自:http://macshuo.com/?p=676

配置

zsh 的配置主要集中在使用者當前目錄的.zshrc裡,用 vim 或你喜歡的其他編輯器開啟.zshrc,在最下面會發現這麼一行字:

# Customize to your needs…

可以在此處定義自己的環境變數和別名,當然,oh my zsh 在安裝時已經自動讀取當前的環境變數並進行了設定,你可以繼續追加其他環境變數。

接下來進行別名的設定,我自己的部分配置如下:

alias cls='clear'alias ll='ls -l'alias la='ls -a'alias vi='vim'alias javac
="javac -J-Dfile.encoding=utf8"alias grep="grep --color=auto"alias-s html=mate # 在命令列直接輸入字尾為 html 的檔名,會在 TextMate 中開啟alias-s rb=mate # 在命令列直接輸入 ruby 檔案,會在 TextMate 中開啟alias-s py=vi # 在命令列直接輸入 python 檔案,會用 vim 中開啟,以下類似alias-s js=vi alias-s c=vi alias-s java=vi alias-s txt=vi alias-s gz='tar -xzvf'
alias-s tgz='tar -xzvf'alias-s zip='unzip'alias-s bz2='tar -xjvf'

zsh 的牛糞之處在於不僅可以設定通用別名,還能針對檔案型別設定對應的開啟程式,比如:

alias -s html=mate,意思就是你在命令列輸入 hello.html,zsh會為你自動開啟 TextMat 並讀取 hello.html; alias -s gz='tar -xzvf',表示自動解壓字尾為 gz 的壓縮包。

總之,只有想不到,木有做不到,嚇尿了吧。

設定完環境變數和別名之後,基本上就可以用了,如果你是個主題控,還可以玩玩 zsh 的主題。在 .zshrc 裡找到ZSH_THEME,就可以設定主題了,預設主題是:

ZSH_THEME=”robbyrussell”

oh my zsh 提供了數十種主題,相關檔案在~/.oh-my-zsh/themes目錄下,你可以隨意選擇,也可以編輯主題滿足自己的變態需求,我採用了預設主題robbyrussell,不過做了一點小小的改動:

PROMPT='%{$fg_bold[red]%}➜ %{$fg_bold[green]%}%p%{$fg[cyan]%}%d %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%}% %{$reset_color%}>'#PROMPT='%{$fg_bold[red]%}➜ %{$fg_bold[green]%}%p %{$fg[cyan]%}%c %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}'

對照原來的版本,我把 c 改為 d,c 表示當前目錄,d 表示絕對路徑,另外在末尾增加了一個「 > 」,改完之後的效果是這樣的:

zsh2

大家可以嘗試進行改造,也算個趣事。

最後我們來說說外掛。

外掛

oh my zsh 專案提供了完善的外掛體系,相關的檔案在~/.oh-my-zsh/plugins目錄下,預設提供了100多種,大家可以根據自己的實際學習和工作環境採用,想了解每個外掛的功能,只要開啟相關目錄下的 zsh 檔案看一下就知道了。外掛也是在.zshrc裡配置,找到plugins關鍵字,你就可以載入自己的外掛了,系統預設載入 git ,你可以在後面追加內容,如下:

plugins=(git textmate ruby autojump osx mvn gradle)

下面簡單介紹幾個:

1、git:當你處於一個 git 受控的目錄下時,Shell 會明確顯示 「git」和 branch,如上圖所示,另外對 git 很多命令進行了簡化,例如 gco=’git checkout’、gd=’git diff’、gst=’git status’、g=’git’等等,熟練使用可以大大減少 git 的命令長度,命令內容可以參考~/.oh-my-zsh/plugins/git/git.plugin.zsh

2、textmate:mr可以建立 ruby 的框架專案,tm finename 可以用 textmate 開啟指定檔案。

3、osx:tab 增強,quick-look filename 可以直接預覽檔案,man-preview grep 可以生成 grep手冊 的pdf 版本等。

4、autojump:zsh 和 autojump 的組合形成了 zsh 下最強悍的外掛,今天我們主要說說這貨。

首先安裝autojump,如果你用 Mac,可以使用 brew 安裝:

brew install autojump

如果是 Linux,去下載 autojump 的最新版本,比如:

git clone git://github.com/joelthelion/autojump.git

解壓縮後進入目錄,執行

./install.py

最後把以下程式碼加入.zshrc:

[[-s ~/.autojump/etc/profile.d/autojump.sh ]]&&.~/.autojump/etc/profile.d/autojump.sh

至此,安裝、配置、外掛三位一體,終極 Shell 全面登場。退出終端會話重新登入,開始感受 zsh 的訓疾如風!

使用 zsh

1、相容 bash,原來使用 bash 的兄弟切換過來毫無壓力,該咋用咋用。

2、強大的歷史紀錄功能,輸入 grep 然後用上下箭頭可以翻閱你執行的所有 grep 命令。

3、智慧拼寫糾正,輸入gtep mactalk * -R,系統會提示:zsh: correct ‘gtep’ to ‘grep’ [nyae]? 比妹紙貼心吧,她們向來都是讓你猜的……

4、各種補全:路徑補全、命令補全,命令引數補全,外掛內容補全等等。觸發補全只需要按一下或兩下 tab 鍵,補全項可以使用 ctrl+n/p/f/b上下左右切換。比如你想殺掉 java 的程序,只需要輸入 kill java + tab鍵,如果只有一個 java 程序,zsh 會自動替換為程序的 pid,如果有多個則會出現選擇項供你選擇。ssh + 空格 + 兩個tab鍵,zsh會列出所有訪問過的主機和使用者名稱進行補全

5、智慧跳轉,安裝了autojump之後,zsh 會自動記錄你訪問過的目錄,通過 j + 目錄名 可以直接進行目錄跳轉,而且目錄名支援模糊匹配和自動補全,例如你訪問過hadoop-1.0.0目錄,輸入j hado 即可正確跳轉。j –stat 可以看你的歷史路徑庫。

6、目錄瀏覽和跳轉:輸入 d,即可列出你在這個會話裡訪問的目錄列表,輸入列表前的序號,即可直接跳轉。

7、在當前目錄下輸入 .. 或 … ,或直接輸入當前目錄名都可以跳轉,你甚至不再需要輸入 cd 命令了。

8、萬用字元搜尋:ls -l **/*.sh,可以遞迴顯示當前目錄下的 shell 檔案,檔案少時可以代替 find,檔案太多就歇菜了。

9、更強的別名:請參考配置一節。

10、外掛支援:請參考外掛一節。