zshの設定を管理するフレームワーク
zshの設定を見直していたところ、zshの設定を「プラグイン」「テーマ」という形で管理するフレームワークがあるということを知った。
https://github.com/robbyrussell/oh-my-zsh
https://github.com/sorin-ionescu/prezto
あまり設定をゴリゴリカスタマイズする気が起きないが、さりとて便利な機能はちょっと使ってみたいという面倒な自分の性質にもあってそうなので導入してみることに。
軽く調べたところ、oh-my-zshの方が多機能かつ重い、preztoの方が軽量かつ小機能、という印象。
これは(多分)作りがどうこう、という話ではなくoh-my-zshの方がデフォルトでインストールされているプラグイン/テーマが多い、ということだと思われる。
一部のテーマ/プラグイン(今のところ、zsh-completionsぐらい?)が利用できればひとまずは良いので、preztoをチョイスする。
preztoのインストール
Githubに記載してあるとおり、preztoをclone後、runcomsディレクトリ以下にある設定ファイルのシンボリックリンクを貼る。
(ref.) https://github.com/sorin-ionescu/prezto/tree/master/runcoms
$ git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto"
# 以下はzshで実行する必要がある
setopt EXTENDED_GLOB
for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do
ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}"
done
設定ファイルに既存の設定を追加する
ただし、この手順だと既にzshの設定がある場合に少し面倒になる。
シンボリックリンクを貼る前に既存の設定を退避、貼った後に退避した設定を手動で追加する必要があるからだ。
そのためpreztoのリポジトリをフォークして自分のカスタム設定を加えておくこととした。
https://github.com/FGtatsuro/prezto
これならば既存の設定を手動で加えることなくGithub上で管理できる。
# clone元の変更のみ
$ git clone --recursive git@github.com:FGtatsuro/prezto.git "${ZDOTDIR:-$HOME}/.zprezto"
setopt EXTENDED_GLOB
for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do
ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}"
done
とりあえずしばらく使ってみて物足りなければ、プラグインを追加していけば良いか。
こちらはまだ試していないが、antigenを使うことになりそう。
(ref.) http://blog.glidenote.com/blog/2012/10/25/antigen/
その他参考記事
http://qiita.com/kei_q/items/814ec412b3c28f580927
http://dev.classmethod.jp/tool/zsh-prezto/