oh-my-zsh を使って zsh の便利な設定をまとめて取り入れる
最近 oh-my-zsh ってのがあるって聞いた。インストールするだけで zsh が便利になるみたいなので、早速試してみた。
oh-my-zsh って何?
oh-my-zsh は zsh の設定を管理するフレームワークで、いろんな設定を有効にして管理、更新できるようになる。プロジェクトは GitHub で管理されてる。
http://github.com/robbyrussell/oh-my-zsh
特徴としてこんなことが挙げられてる。
- 40以上のプロンプト テーマ
- 便利なプラグイン
- 自動アップデート機能
- コミュニティ主体の開発(みんなの設定を取り込んでいく)
インストールすると、だいたいこんなことが設定される。
- プロンプトがかっこよく(?)なる
- alias がいっぱい設定される
- よく使う option が設定される
必要な環境なんだけど、zsh のバージョンは 4.3.9 以降を推奨してる。Mac の Snow Leopard の人はデフォルトの zsh で OK。あと、全体的に Git 使ってること前提っぽい。
インストール
インストール用に自動スクリプトがある。
% wget http://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh
こいつを実行すれば oh-my-zsy がローカル環境にインストールされる。でも、勝手に chsh でログインシェルを変えたりして色々やりすぎなので、あんまりおすすめしない。
手動でインストールする方法は以下。
% git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh # 自分の ~/.zshrc がすでにある場合はリネームしておく % mv ~/.zshrc ~/.zshrc.orig % cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
どっちの方法も Git が必要になる。Git 使えない人は GitHub のプロジェクトページから圧縮ファイルをダウンロードしてインストールしよう。
# ダウンロードファイルを展開して ~/.oh-my-zsh にコピーする % unzip robbyrussell-oh-my-zsh-541da0c.zip % mv robbyrussell-oh-my-zsh-541da0c ~/.oh-my-zsh % cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
インストールした後適当に zsh を再起動すると oh-my-zsh が有効になる。
あと、インストール先の ~/.oh-my-zsh というディレクトリ名は固定で、変えたら動かない
プロンプトの設定
oh-my-zsh にプロンプトのテーマがいっぱい入ってる。~/.zshrc で ZSH_THEME を設定するとテーマを変更できる。
# ~/.zshrc 6行目 # デフォルトは robbyrussell export ZSH_THEME="robbyrussell"
~/.oh-my-zsh/themes の中を見て、好きなものに変更しよう。
export ZSH_THEME="cypher"
zsh を再起動すると新しいテーマになる。
プラグイン
~/.oh-my-zsh/plugins/ 以下に独自のプラグインが入ってる。
% ls ~/.oh-my-zsh/plugins/ brew/ dirpersist/ git/ macports/ osx/ rails/ ssh-agent/ vi-mode/ cap/ gem/ lighthouse/ mysql/ pip/ ruby/ textmate/
このうち使用するものを ~/.zshrc で指定する。デフォルトはこんな感じ。
# ~/.zshrc 19行目 plugins=(git)
使用したいものを指定しよう。
plugins=(git ruby gem)
プラグインと言ってもそんな凝ったことしてるわけじゃなくて、 だいたい alias、便利な関数、 補完ファイルとかが読み込まれるだけ。
カスタム設定
自分の独自の設定は ~/.oh-my-zsh/custom に適当な名前(最後は .zsh)でファイルを作ってそこに書く。
# 例 % cat ~/.oh-my-zsh/custom/custom-aliases.zsh alias v='vim' alias vr='vim -R' alias c='cd'
好きなように書いておこう。
自動アップデート
1週間に1回のタイミングで、zsh 起動時に自動的アップデートされる。アップデートといっても単純に GitHub から pull してくるだけ。なので Git 使わずにインストールした人はこの機能が使えない。
勝手にアップデートされるのがいやなら ~/.zhsrc で無効にできる。
# ~/.zshrc 12行目をアンコメント export DISABLE_AUTO_UPDATE="true"
使ってみた感じ
使ってみた感想なんだけど、なんか全体的に作った人の「個人的な便利設定の集まり」みたいになってる。一般におすすめできるかというと、ちょっと疑問が残る。
作者の theunraveler さんの環境はたぶんこんな感じ。
- Mac
- Git
- Ruby
- Ruby On Rails
- MySQL
典型的な(?) Rubyist だと思うので、そういう人意外にはありがたみがないかもしれない。
例えば textmate プラグインにこんな設定が入ってる。
alias ett='mate app config lib db public spec test Rakefile Capfile Todo &'
Textmate(Mac 用のエディタ)の設定のはずが、明らかに Rails 使ってること前提になってる。なので Rails やってない人はこのへん意味ない。(だからプラグインの形になってるわけね)
というか、そもそも alias って手癖みたいなもんで、めちゃ人に依存するとこだと思う。なので誰かの設定をそのまま持ってきても便利になるとは限らない。すでに zsh カスタマイズしまくりの人が oh-my-zsh 使ってもかえって混乱するだけだと思う。
なので、oh-my-zsh をおすすめするのは以下の人。
でもインストールするだけで zsh の補完とかがすぐ使えるようになるのは良いと思う。というわけで、「zsh ってよくわかんないし、設定難しいし、簡単にパワフルな機能使ってウヒョーってなりたい」ってひとは使ってみるといいと思うよ。