zsh

研究室で使っているシェルの紹介
デフォルトのログインシェルは tcsh なんだけど、そのまま使うのなんか芸がない。
いじり倒せば強力な補完機能でgoodとはいっても、今までBashだったので正直たまに戸惑う。
というわけで、zshを試してみた。
こいつの特徴は

というあたりだろうか。
 
とりあえずB Shell系ってのは単なる気分の問題だからいいとして、やばいのは補完機能。
例えば
scp user@hostname:directory/file user@hostname:directory/file
とするときに、
user, hostname, directory, file をローカルリモート関係なく補完してくれる。
もちろんリモート補完はログインが必要なので、鍵でパスワード無し認証できるようにしないとイヤンなことになるのだけれど、webサーバーにhtmlをアップするとき、
「あれ?ディレクトリ名なんだっけ?あーもう、sshしないとぉぉぉ」
なんてことがなくなる。すげー便利。
ついでにメジャーなコマンドのオプションとかも網羅していて、とりあえず迷ったときはtab押せば大抵なんとかしてくれる。
 
あとコマンドラインスタックがまたナイス。
普段はあんまり使わないんだけどここぞというとき役に立つ。
以下とあるzsh紹介サイトから引用

./configure --libraries=/opt/include --prefix=/usr/local/hoge
まで打ってから、
あ、config.h 変えとかなきゃって思って vi config.h とまで打ったところで、
あchmodせんとと思って chmod +w config.h したあとで、
あああー、またvi config.hって 打つのかーって 思ってさらに編集し終わって、また ./configure うつのかーしくしく、とか

こんなときには ESC-q
これで打ったコマンドがスタックされて、別のコマンド実行後に表示される。
 
正直感動した。
たまにもうやけくそで実行して即Ctrl-Cとかする無茶をもうしなくてよくなった。
マジナイス。
 
そして右プロンプト。
user@hostname $ command hogehoge foobar [~/.emacs.d]
とかみたいに右端にもプロンプトがでる。
なんつうかtcshにもあるしぶっちゃけあまり便利じゃないけどかっこいい。
出たり消えたりうざったいとか言う人もいるけどどうせたまにしか見ないから関係ない。
(でも最近は2行プロンプトが気になり中)
 
とりあえず色々いじるのはやっぱ楽しいと思う。
 
環境構築が目的になりつつある本末転倒な今日この頃でした。