いっこ上のディレクトリに移動

シェルを使っていると、いっこ上のディレクトリに移動したいことがよくある。よくある操作なんだから、いちいちcd ..とか打ちたくないよね(Windowsエクスプローラもいっこ上ボタンがあるくらいだし)。
これってalias d='cd ..'とかでもできると思うけど、これだと最低2アクション必要になる(コマンド1文字 + Enter)。できれば1アクションで行いたいところだ。1アクションにすることで、連打可能になる。連打して2つ上とか3つ上のディレクトリに行けるようになる。
んで、以下のように設定してみた。いずれもM-uでいっこ上のディレクトリに移動する。端末の設定によって、8bit目を立てた文字として送信する場合とEscape + 文字の2文字を送信する場合があるけど、以下の例ではできるだけ両方に対応するようにした。
まずbashの場合(bash-3.0nb1で確認)。~/.bashrcに以下を追加する。

bind 'Meta-u:" \C-ucd ..\n"'
bind '"\M-u":" \C-ucd ..\n"'

次、zshの場合(zsh-4.2.1で確認)。~/.zshrcに以下を追加する。^Uは、^とUの2文字。

bindkey -s '\M-u' '^Ucd ..\n'
bindkey -s '\eu' '^Ucd ..\n'

需要があるのかどうだかわからないけど、pdkshの場合。(僕は素のNetBSDの場合、/bin/ksh使ってるんで、一応…‥) 以下を~/.profileに追加する。^[は、^と[の2文字。^U、^Mも同じ。pdkshの場合は、8bit目を立てた場合の設定方法が分からなかったので、Escapeの場合だけ。設定方法、知っている人いたら教えてください。

bind -m '^[u=^Ucd ..^M'

^Uをcdの前に入れているのが、ひと工夫。これがあるとコマンドの途中でM-uを押しても、いっこ上のディレクトリに移動してくれる。