漢のzsh が突然再開した

マイコミジャーナルの漢のzsh の連載が突然再開した(漢のzsh(24))。で、最終回になった。

いったい何があったんだ。というかまだ連載終わってなかったのか。まあ、これを機会にzshrcをちょっと見直してみた。

今回の記事のメインは「rootの場合のプロンプトを工夫する」と「ターミナルやコンソールの設定部分を見直す」。また目の付け所が細かいな。

まあそんなマニアックな所はほっといて、以下の部分をパクってみた。

autoload history-search-end
zle -N history-beginning-search-backward-end history-search-end
zle -N history-beginning-search-forward-end history-search-end
bindkey "^p" history-beginning-search-backward-end
bindkey "^n" history-beginning-search-forward-end

この設定ってけっこう使ってる人多いみたいだけど、ほとんど解説がないのでどんなものなのか調べてみた。この「history-search-end」本体*1のコメントに説明が書いてあった。

それを見ると、「history-beginning-search-{back,for}ward とほとんど一緒だけど、カーソルが行末に移動してくれるよ」って書いてある。さっそく試してみた。

% ls          # ここで ^p を押すと ...
% ls ~/work/  # ls で始まる履歴が表示される
              # カーソル位置は一番最後

%             # なんにも入力してない状態で ^p を押すと ...
% ls ~/local/ # 履歴が順に表示される (普通の上矢印といっしょ)
              # しかもカーソル位置は一番最後

うおー、超便利。「カーソル位置が行末になる」ってのがポイントで、そのあとちょっと編集したりするのがめちゃ楽になる。history-beginning-search-backward の場合、カーソル位置が行の先頭になって微妙だったんだよ。

うー、みんなこんな便利なことしてたのか。明日から僕も使いまくろう。

*1:僕の環境の場合、/usr/share/zsh/4.3.4/functions/Zle/history-search-end