iTerm2 と zsh のインストールと基本的な設定

  • 337
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

今までは何も考えずに Terminal.app で bash を使ってたけど,最近黒い画面で作業することが多くなった.なので,この機会に Terminal.app と bash から卒業して,iTerm2 と zsh を使うことにした.
iTerm2 と zsh を使おうと思ったきっかけはこの記事.

http://yulily100.hatenablog.jp/entry/2014/08/03/230442

インストールの方法とか基本的な設定はほぼこの記事を真似てます.

環境

Mac OSX 10.9.4 Mavericks

iTerm2 のインストール

http://iterm2.com/ にアクセスし,Downloads からダウンロードして解凍,Application フォルダにつっこむ.

iTerm2 のカラースキーム

Preference -> Profiles -> Colors -> Load Presets からカラースキームを選ぶことができる.プリインストールされているものから選んでもいいし,Visit Online Gallery をクリックすると様々なカラースキームが配布されているサイト一覧に飛ぶので,そこから探すのもあり.
今回は,GitHub で配布されているカラースキームを使用した.

https://github.com/larssmit/iterm2-getafe

ダウンロードして解凍すると getafe.itermcolors というファイルがあるので,それを Load Presets の所にある Import からインポートする.そうすると,Load Presets のところで getafe が選べるようになる.

Screen Shot 2014-08-12 at 1.23.19.png

iTerm2 の設定

Profiles -> General -> Command を zsh に変更.Command: のテキストボックスに zsh と入力.
General -> Text -> Regular Font, Non-ASCII Font を 13pt Monaco に
同じ画面で Tream ambiguous-width characters as double width にチェックを入れる(記号を入力したときにかぶらないようにする)

zsh のインストール

Mac にデフォルトで zsh は入ってるけど,最新版を使いたいので HomeBrew でインストールする.HomeBrew のインストール方法は割愛.
brew install zsh と打って,以下のようになれば成功.

Screen Shot 2014-08-11 at 23.39.15.png

.zshrc の中身

こちらをありがたく使わせていただきました.

https://gist.github.com/mollifier/4979906

oh-my-zsh のインストール

oh-my-zsh は zsh の設定を管理するフレームワークらしい.便利そうなのでインストールしてみた.
以下の方法でインストール

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

そうすると,でかでかと AA で oh-my-zsh と出てくる.これが出ればOK.

Screen Shot 2014-08-11 at 23.35.16.png

oh-my-zsh のテーマを設定

oh-my-zsh にもいろいろなテーマがある.

https://github.com/robbyrussell/oh-my-zsh/wiki/themes

.zshrc の ZSH_THEME の値を変えるだけ.
今回は wedisagree を入れてみた.このテーマの便利なところが Git のリポジトリ上にいると今いる Branch 名が表示されたり,状態によって晴れたり曇ったり雨が降ったりする.それぞれの記号の意味などはここで詳しく解説されている.

http://www.eisbahn.jp/yoichiro/2013/01/oh-my-zsh-wedisagree-git.html

Screen Shot 2014-08-12 at 1.58.21.png

まとめ

iTerm2 と zsh をいじってみたけどいい感じ.
特に oh-my-zsh のテーマが便利すぎてやばい.何か良い設定があったらぜひ教えてください.

追記

percol で飛びたいディレクトリに素早く飛ぶ!

Twitter で kickbase さんからご教授いただき,早速使ってみた.

以下の 2 つの記事を参考にしました.

http://blog.zoncoen.net/blog/2014/01/14/percol-autojump-with-zsh/
http://stillpedant.hatenablog.com/entry/percol-cd-history

percol のインストール

https://github.com/mooz/percol/blob/master/README.md の通り,

git clone git://github.cpm/mooz/percol.git
cd percol
python setup.py install

と打ってみたが,どうやらインストール中に /Library/ 以下にディレクトリを作るらしく,Permission Denied と言われてしまった.なので,sudo をつけて setup.py を実行.

Screen Shot 2014-08-12 at 2.47.52.png

インストールした後,percol と打つと AA で percol と表示される.
(oh-my-zsh もそうだったけど,AA でプロダクト名表示させるの流行なのかな…?w)
AA の下に簡単な使い方が書いてあるので,試してみるといい.

Screen Shot 2014-08-12 at 2.48.04.png

percol で一度でも cd したことがあるディレクトリに効率よく cd する設定

参考記事からそのまま使わせていただきます.

# {{{
# cd 履歴を記録
typeset -U chpwd_functions
CD_HISTORY_FILE=${HOME}/.cd_history_file # cd 履歴の記録先ファイル
function chpwd_record_history() {
    echo $PWD >> ${CD_HISTORY_FILE}
}
chpwd_functions=($chpwd_functions chpwd_record_history)

# percol を使って cd 履歴の中からディレクトリを選択
# 過去の訪問回数が多いほど選択候補の上に来る
function percol_get_destination_from_history() {
    sort ${CD_HISTORY_FILE} | uniq -c | sort -r | \
        sed -e 's/^[ ]*[0-9]*[ ]*//' | \
        sed -e s"/^${HOME//\//\\/}/~/" | \
        percol | xargs echo
}

# percol を使って cd 履歴の中からディレクトリを選択し cd するウィジェット
function percol_cd_history() {
    local destination=$(percol_get_destination_from_history)
    [ -n $destination ] && cd ${destination/#\~/${HOME}}
    zle reset-prompt
}
zle -N percol_cd_history

# percol を使って cd 履歴の中からディレクトリを選択し,現在のカーソル位置に挿入するウィジェット
function percol_insert_history() {
    local destination=$(percol_get_destination_from_history)
    if [ $? -eq 0 ]; then
        local new_left="${LBUFFER} ${destination} "
        BUFFER=${new_left}${RBUFFER}
        CURSOR=${#new_left}
    fi
    zle reset-prompt
}
zle -N percol_insert_history
# }}}

# C-x ; でディレクトリに cd
# C-x i でディレクトリを挿入
bindkey '^x;' percol_cd_history
bindkey '^xi' percol_insert_history

この設定を .zshrc に追加することで,percol_cd_history と percol_insert_history というコマンドが追加される.設定で,それぞれのコマンドに C-x ; と C-x i というコマンドを割り当てているので,ここはお好みで.

今回の設定で追加したコマンドの特徴

  • percol のマッチング機能が使える
    • And 検索
    • Migemo(ローマ字のまま日本語をインクリメンタルサーチするツール)
    • 正規表現
  • cd された回数も記録するので,よく飛ぶディレクトリに飛びやすい
  • ジャンプするだけでなく挿入もできる
    • コマンドの引数入力時に使える

${HOME}/.cd_history_file に履歴を記録するので,最初はあまり役に立たない.
cd すればするほど便利になってくる.

percol_cd_history の実行画面

Screen Shot 2014-08-12 at 3.08.37.png

導入したばかりなので 2 つしか履歴がないが,カーソルを矢印キーで合わせた状態で Enter キーを押せばそのディレクトリにジャンプできる.
percol_insert_history を使った場合,選択したディレクトリのパスが挿入される.

ディレクトリの移動がめっちゃ捗りそう!ご教授いただいた kickbase さんありがとうございます!