改めて自分の設定を破棄して、こちらで管理することを決断した@HIROCASTERでございませう。
ずっと、bashを使ってきましたが、数年前からzshに乗り換えて、さらにzshを拡張するに至っています。
oh-my-zshとは?
oh-my-zshとは、zshの設定ファイルを管理するためのフレームワークです。oh-my-zshに最初からコミュニティによって、追加されたプラグインが入っており、それを有効化するだけで、シェルでよく使われるような便利な機能や補完が有効になります。
プログラマーとして拡張させていくために
oh-my-zshの一定のルールに基づく設定ファイルの管理によって、自分自身の設定ファイルをモジュール化でき、簡素かつ柔軟にに管理できるようになるのが、プログラマとしてシェルを拡張していく人のメリットです。
だらだらっと、1ファイルに書き連ねていくのは、もうやめましょう。
oh-my-zshのインストール
git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
cp ~/.zshrc ~/.zshrc.orig # 念のためバックアップ
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
chsh -s /bin/zsh # 起動シェルをzshにしていない人のみ
念のため、何かあったら困るので別ウィンドウで、シェルを新たに立ち上げる。
テーマの変更
~/.zshの以下の部分を公開されているテーマに変更すると好みのテーマを利用する事ができる。
ZSH_THEME="robbyrussell"
初期設定の上記のテーマで、シンプルなので、まぁいいか。
プラグインの有効化
oh-my-zshではプラグイン構造が構築されており、~/.oh-my-zsh/plugins/以下にプラグインが最初からいくつかある。
有効にしたいプラグインを~/.zshの以下の部分に書き足して、有効化しないと使えない。
plugins=(git)
使いそうなコマンドを有効化した。
plugins=(apache2-macports autojump bundler cap compleat
extract gem git git-flow github knife mysql-macports
node mpn osx rails rake ruby rvm vagrant)
それぞれのプラグインの中身を見てから追加することを推奨します。単なるAliasを貼ってあるだけのものもあったりするので、そりゃあんたが勝手につくったAliasだから僕は一度も使い分けがない。という感じの設定があったりします。
プラグインの追加・拡張
独自にプラグインを追加する場合は、~/.oh-my-zsh/custom/plugins/以下にプラグインを置いてやる。
exampleという名前のプラグインをつくる場合、以下のようなファイル名になる。
~/.oh-my-zsh/custom/plugins/example/example.plugin.zsh
基本的には独自の拡張や設定はすべてプラグインにして、設定することが望ましいといえる。
独自のプラグインを作成
試しにhirocasterプラグインを作成してみる。
~/.oh-my-zsh/custom/plugins/hirocaster/hirocaster.plugin.zsh
というファイルを作成し、中身をこんな感じにしておく。
export LANG=ja_JP.UTF-8
export EDITOR=emacs
export PATH=~/bin:$PATH
プラグインを有効にして、新たに起動したシェルで、設定を確認する。
➜ ~ echo $LANG
ja_JP.UTF-8
➜ ~ echo $EDITOR
emacs
バッチリ!
oh-my-zshのプラグイン構造で設定ファイルを管理すべし
この様にoh-my-zshを利用して、今まで1ファイルにダラダラ書いてあったりする.zshrcをプラグインにわけて、モジュール化して管理してみてはどうだろうか。
今までは、if文を利用して環境によって、有効・無効にするような設定をして、.zshrcファイルがついつい長めになってしまっていたので、includeして設定ファイルをわけていたが、oh-my-zshのプラグイン構造を利用して今後は管理していこうと思う。
広瀬 雄二 |