自分はFreeBSDからunixな世界に入ったため、以前はtcshをよく使っていた。
バイトでbona先生と知り合い、そこでzshの存在を初めて知り、あまりの高機能さにzshに移ったわけだが、どうしてもコレだけはtcshの方がイイよなぁと思う箇所が一個だけあった。
それは矢印キーによる履歴検索。
例えば
$grep hoge hoge.txt
$cat hogehoge.txt
と打った後
gre↑と入力するとtcshでは気を利かせてgreから始まる以前の入力grep hoge hoge.txtが出るのに対し、zshはデフォルトで直前のcat hogehoge.txtが出る。
この部分だけがtcshっぽかったら最高なんだけどなぁと思って今日調べてみたら、(やっぱり)この挙動をカスタマイズできるらしい。
www.crimson-snow.net/tips/unix/zsh.htmlより
# コマンド履歴の検索機能の設定 # ^[ は「エスケープ」 # viなら Ctrl-v ESC # Emacsなら Ctrl-q ESC # viで編集する場合 # 上2行は Ctrl-v を押下した後、希望のキーを押下 # 下2行は「エスケープ」の後にキーの端末コードを入力 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 "^[OA" history-beginning-search-backward-end bindkey "^[OB" history-beginning-search-forward-end bindkey "^[[A" history-beginning-search-backward-end bindkey "^[[B" history-beginning-search-forward-end
矢印キーの端末コードがどうなるかは環境依存。
cygwinでは^[OA、
FreeBSDにputty経由で繋いだら^[[Aになった。
めんどくさいから2パターンとも書いてた方がイイカモね。
いやーこれでまた快適になった。もっと早く調べておくべきだったよ。