「漢のzsh」で取り上げてほしいネタ案
初回いらいぼちぼち眺めたり眺めなかったりなマイコミジャーナルの漢のzshだけど、今回で「取り上げてほしいネタ」を募集してますね。
うーん、といっても、あとは「ある意味ですごい便利なんだけど、使わない人はさっぱり使わない」系の機能しか残ってない気はするなあ。
とりあえずすぐ思いつくのは次の2つ。
コマンドラインスタック
コマンド行に何かを打ち込んでいるときに、 ^[q (Escを押してからq)と打鍵をすると、そのコマンドが消えて新しい行になる。その新しい行で何かコマンドを打ち込んで終了するとあら不思議、コマンド行が ^[q の直前の状態に戻っているとゆー。
これは、たとえば何かファイルを作成する処理を書いている途中で「あしまったそもそもディレクトリを作んなきゃダメだ」と気付いたりしたような場合に便利だ。もちろん「スタック」というだけあって、何度でも繰り返せる。
複数行編集
zsh はヒストリでは、複数行をいっぺんに記憶している。たとえば、
% for i in {1..10} do > echo $i > done
みたいな処理でも3行でヒストリに入る。ぜんぜん覚えてくれない tcsh は論外としても、たしか bash はこれが1行になってしまうような気がした。わたしは複数行の方が嬉しい(けどまあ人によるかもなあ)。
WORDCHARS
単語区切り文字の指定。 zsh に限らずシェルでは ^w で1単語が削れるけど、どの文字までを1単語とみなすか、という処理のカスタマイズが可能(これはまあ、わりにどのシェルでもできることだったはずだが)。 zsh では WORDCHARS という変数に「単語境界にならない記号」を与えることでこれをやる。わたしの設定では、
WORDCHARS='*?_-.[]~=&;!#$%^(){}<>’
となっている。 / が入っていないのがミソで、適当なパス名を入力中に ^w を打鍵すると、ディレクトリ名を区切る / が空白文字のような単語境界となっているため、ちょうど1ディレクトリ分だけを削除できる。これ、けっこう便利だ。パス名をすべて消したいっていうのは、あんまないと思うんだよね(まあこれも人によりましょうが……)。
あとまあ compdef とかいろいろあるんだけど、どうも一つ一つは小粒なネタになっちゃうんだよね。なかなかありません。
えーと、以上のような内容を(こんなにぐだぐだ書かないけど)情報提供の予定。