もしかして時代はzsh?

現在、元気に…というわけでもなく、飛行石の光でも見てしまったのか、急に目が痛くなって一日中寝ていたため、某所でレスを付けるタイミングを見失ってしまったり、アイスを食べるとしみるので歯医者に行ったら血が出る程歯石をこそがれた上、「ちゃんと歯を磨いてください」としつこく言われ、磨いとるわい! と言い返したいのだが、自分の口内環境に自信がもてず、どうも態度を大きくできずちょぴっと鬱入ったりしつつ (ちなみに、ここは「元気に」にかかる。わかりにくい。0点)、サイトをWiki化するために、Wikiクローン MoinMoin のソースを書いている。
量が量なので、PythonXHTML を MoinMoin に変換するスクリプトを書きはじめた。難しいのは <li> の入れ子だと思うのだが、とりあえず考えないことにして、<hr> と <h?> から始めることにした。
当然ながら、最近マイブームの vi を使用しているわけだが、<h?> の処理を書く段になって、複数行置換ってどうやるんだろうな、という話になった。一ヶ所置換なら

:s/正規表現/置換後文字列/

一行置換なら

:s/正規表現/置換後文字列/g

ファイル全置換なら

:%s/正規表現/置換後文字列/g

行番号指定置換なら

:開始行番号,終了行番号s/正規表現/置換後文字列/g

なわけだが、行番号指定ではなく、カーソル行から n 行ってどうするんだろう? そもそも「vi 複数行置換」でろくなペイジがぐぐれないのはこまっちゃうわー。
というようなことを調べていると、興味深いペイジを見付けた。
vi を使いはじめてから、気になっていたことがある。いつも使用している bash では Emacsキーバインドが使える。Ctrl+b で左に、Ctrl+f で右にカーソルが動く…といった具合。
…vi はないんだろうか?
h で左、l で右…という変態的なキーバインドでシェルを操ってみたいではないか! 履歴を見るのは ESC k だこの野郎!
あった。
その名は zsh。興味はもちつつ、手は出してこなかったシェルである。デフォルトで vi なキーバインドが用意されているとな。
だが、若干手を出しづらい雰囲気もある。だいたい、

によれば

web での情報量は泣きたくなるほど少ないです。実際に使ってみようとすると、その理由がわかりました。zsh 自身が既に充分複雑であることともうひとつ、マニュアルのせいです。
(略)
このマニュアルが最高に意味不明♪なのです。

…。がくがくぶるぶる。こんなタコに使いこなせるのだろうか…。bash だってあやしいってのに…。find の -exec なんて書けないよ、ママン。
ただ最強なのは本当のようで、

によれば、

zsh の補完機能は物凄いことになっている。
(略)
tar xzvf のあとでは tar.gz なファイルのみが、 tar xjvf のあとでは tar.bz2 なファイルのみが、 tar xvf のあとでは tar なファイルのみが補完されるというスゴいんだかスゴくないんだかよくわからない機能もある。

あ、これは欲しいかも。更に

scp などでうっかりタブを押すとリモートホスト上のファイルリストを調べようとアクセスしに行くのだが、さすがにそこまで行くとちょっとやりすぎという気はしないでもない。

タブキーを押す毎にパスワード聞かれたりするんだったらとても嫌な機能な気がする。たしかにscpやsftpはリモートのパスを間違えてしまうので、こういった補完が欲しくなることもある。個人的には ssh のオプションで、リモートで実行するコマンドを指定するところも補完してほしいかもしれない…。
さて、zsh に乗り換えるかどうか…。
お仕事で使ってるサーバーに入ってるかどうかが分かれ目かも。