bash から zsh に乗り換えた

かれこれ 5 年くらいログインシェルを bash のままで生活していたけど, ふと思い立って zsh に乗り換えて見ようかなと思った.

zsh のほうが色々と高機能で便利ということはぼんやり把握していたけれど, 今までは自分の脳と運用を過信していたので (またそれでどうにかなっていたので) bash からエイヤと乗り換えるほどの気力が湧かなかった.

しかし最近は仕事も忙しくなってきて, bash から要求される分まで脳の負荷を割ける余裕がなくなってきて, zsh でできることを bash で実現させる方法も (調べれば) あるのだろうけどそこまでするならもう楽して zsh におんぶにだっこで良くない?という気持ちになったのがきっかけといえばきっかけかもしれない.

fish を試してみようかなとも一瞬思ったけれど POSIX 非互換らしいということで, そこで何かしらハマったりしたときに労力を割くのは本質的ではないなと思ったので zsh を選んだ.

.zshrc の設定をいくつかググって好みのものをピックアップしたほか, もともと .bashrc の設定をカテゴリ別にいくつかのファイルに分割していて, alias の設定や nvm や rbenv の initialization 等は bash でも zsh でも共通だったので, それらは sh-commonrc という名前のディレクトリを作ってその下にまるごと移動させた. そして sh-commonrc/.commonrc というファイルを作ってそれらの設定ファイルたちを source するようにした. これで .bashrc と .zshrc で source sh-commonrc/.commonrc しておけば今後も alias の管理とかを共通化できて幸せになれるんじゃないかと思う.

github.com

逆に言うと何か共通で使えそうっぽい設定を追加するときはそれが共通で使えるかどうかを逐一調べるというコストが発生することになるけど, それがどの程度の負担なのかはまだわからないので, とりあえずある程度の期間運用してみてから考えようと思う.

zsh 固有の設定はだいたいはググった記事を読んでなるほどそうすかという感じで追加していったけど, git の情報をプロンプトに表示させる設定は少々独特だったので man zshcontrib して vcs_info のマニュアルを読んだりもした.

そういう感じで zsh に乗り換えた. 現時点での感想は補完が便利すね〜というところです. そんな感じの日記です.