zshを使い始める

zshを使い始めました。卒業してからはもっぱらbashだったのですが、zshは凄いらしいという話を聞いていたので。
使い始めて利点が段々分かってきた。

  • 使っていると通っぽい

まぁ、これは使い始めなくてもわかるわけで(笑)

  • .bashrc と .zshrc に互換性がある

プロンプトとかの書式で異なる部分があるのだが、エイリアスとかの設定はそのまま使えるものが多い。なので、おおまかな設定はそのまま引き継ぎやすいと思う。.tcshrc からの移行ツールもあるらしいのだが、そちらは未使用。
ちなみに、現在のプロンプトは以下の設定にしている。


setopt prompt_subst
PROMPT=$'[%{\e[$((color=$((32+$RANDOM % 5))))m%}%n@%m%{\e[00m%}]%# '
RPROMPT=$'%~'

コマンド打つたびにプロンプトの色が変わるというゴージャスな仕様(笑)になっている。zshにしか出来ない(出来なかった?)らしい。

  • foreachが使える & foreach内の履歴がちゃんと残る!

個人的にはこれが一番大きい。bashはforeachがコマンドラインで使えず、for文しか使えなかったのだが、横着でfor文の構文を覚えていなかったので、foreachが使えるのは地味にありがたい。
あと、foreachの中身はtcshだとヒストリとして残らない。これがZSHだと残る。コマンドラインでforeachを多用する人にとっては便利。

  • RPROMPTが使える

通常のプロンプトとは別に、右寄せされたプロンプトが使えます。それが、RPROMPTという環境変数。現在はそこにパスを表示するようにしています。上の設定でもそうなっていますね。
パスによってプロンプトの長さが変わらないので、コマンドの打ち始めがそろえられていて美しい!と思っていたのだが、使っていくうち、結構どうでもいいような気がしてきた(笑)

  • 補完候補によってログが上に流れていかない

bash,tcshで良くあることですが、補完候補を何度が表示しているうちに、どんどんログが上に流れて言っちゃうことがあります。zshでは、補完候補の表示によって無尽蔵にスクロールすることがないのでこういった心配はありません。これぞ近代的シェルですな。(Kita-Cの突っ込みを受けて追記しました)

zshはすんなり使える割には奥が深そうなシェルみたいです。ただ、知名度が低い(気がする)のがネックですね・・・