「漢のzsh」で取り上げてほしいネタ案

This entry was posted by on Friday, 8 June, 2007

初回いらいぼちぼち眺めたり眺めなかったりなマイコミジャーナルの漢の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 とかいろいろあるんだけど、どうも一つ一つは小粒なネタになっちゃうんだよね。なかなかありません。

えーと、以上のような内容を(こんなにぐだぐだ書かないけど)情報提供の予定。

Comments are closed.