この記事はbrew版のzshのインストールとoh-my-zshの設定についてメモっています。
いままではなんとなくshlleはbashを使っていました。 というかshlleについてとくに意識したことがなかったです。。。はい。
使うにあたった経緯としましては、gitのブランチ名をプロンプトに表示させて便利にしたい!と思っていた所にこんな記事を発見したからです。 怠惰にgitを使うためのシェル活用術、またはgst一族
おお!これはめっちゃ便利!
どうやら「zsh」というのを使っているなー。じゃあ入れてみよう!
手順
brew版のzshのインストールとログインシェルの変更
今回、こちらの記事を参考にさせて頂きました「Mac/LionのTerminalをzshに設定する」 ありがとうございます。
自分はLionをつかっているのですが、デフォルトでzsh 4.3.11がインストールされていました。ただ、最新版ではないようでしたので、homebrewをつかって最新版をインストールします。
$ brew install zsh
インストール後は
/usr/local/bin/zsh
ここですんなりインストールできると思ったのですが、自分の環境ではエラーとなり、「brew unlink zsh」を実行しないとダメでした。これってなんででしょうか^^;
インストールがうまくいくとこんなメッセージが
To use this build of Zsh as your login shell, add it to /etc/shells. If you have administrator privileges, you must fix an Apple miss configuration in Mac OS X 10.7 Lion by renaming /etc/zshenv to /etc/zprofile, or Zsh will have the wrong PATH when executed non-interactively by scripts. Alternatively, install Zsh with /etc disabled: brew install --disable-etcdir zsh
ログインシェルに使うなら/etc/shellsに追加してねと書いてあるらしい
shellsをエディタで開いて/usr/local/bin/zshを追加
# List of acceptable shells for chpass(1). # Ftpd will not allow users to connect who are not using # one of these shells. /bin/bash /bin/csh /bin/ksh /bin/sh /bin/tcsh /bin/zsh /usr/local/bin/zsh
あと、/etc/zshenvを/etc/zprofile にリネームしてねとも書いてあるらしい。
$ mv zshenv zprofile
以下のコマンドでログインシェルをzshにする
$ chsh -s /usr/local/bin/zsh
oh-my-zshの設定
oh-my-zshの設定については、こちらの記事を参考にさせて頂きました「zshに乗り換えました」 ありがとうございます。
まずgithubからダウンロードします。 ダウンロードしたあとに既存の.zshrcはリネームしておくといいです。 もしすでになにか設定を書いている場合はそれをカスタイズとして使用することも出来るからです。
git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
ここで一度ターミナルを再起動させればoh-my-zshが反映されていると思います。
カスタム設定
~/.oh-my-zsh/custom
ここにリネームしておいた.zshrcを置き、適当なファイル名で拡張子を.zshにします。 これでカスタム設定が可能です。
なんとoh-my-zshにするとすでにブランチ名と状態がわかるようになっています!これはすごく便利! また、テーマがたくさん用意されているのでこちらから選んで変更も可能です。 テーマが決まったら.zshrcに記述します。
ZSH_THEME="Soliah"
zshに変えた感想としては、補完機能が優れていると思いました。 tabを押して候補が出てくるのですが、emacsのキーバイドで候補を選択できるのでとても使いやすい(emacs使っているからですが^^;)と感じました。
とりあえずは、zshを覚えていこうと思います。