zshのキーバインドで余っているキーを探す
初めに
zsh最強シェル入門を買ってから、zshのカスタマイズにはまっています。今日はコマンドライン編集のキーバインドをいい感じにしようとしていました。
で、色々やってたけど、キーがぜんぜん足りません。 何か使いやすいキーに割り当てようとしても、たいていのキーはデフォルトで使われています。そこで、「何にも割り当てがないし、押しやすいキー」(いい子)と「押しやすいくせにほとんど使っていないキー」(わるい子)を探すことにしました。
デフォルト設定を調べる
使いやすいキーバインドと言えば、「Ctrl+なんちゃら」。ということで、デフォルトのキーバインドのうちC-*
という形式のやつを調べました。
% bindkey -d # デフォルト設定に戻す % bindkey -e # emacsモードを使う % bindkey # 今設定されているすべてのキーバインドを表示する "^@" set-mark-command "^A" beginning-of-line "^B" backward-char # ... たくさん出てきてビックリする % bindkey | grep '"\^."' # C-* という形式の設定だけを表示する
ふむふむ。やっぱり、あんまり使ってないキーがある。大事なやつといらないやつを(僕なりに)分けました。
超大事
無いと死ぬ、というやつです。
"^A" beginning-of-line "^B" backward-char "^E" end-of-line "^F" forward-char "^G" send-break "^H" backward-delete-char "^I" expand-or-complete "^L" clear-screen "^M" accept-line "^N" down-line-or-history "^P" up-line-or-history "^R" history-incremental-search-backward "^U" kill-whole-line "^W" backward-kill-word
"^G"
はあんまり使わないけど、無くすとキャンセルできなくなるので大事です。"^M"
はreturnキーの入力と同じなので、やっぱり大事です。
まあまあ大事
それなりに使うやつです。
"^D" delete-char-or-list "^K" kill-line "^X" # 単体では使わない。^X^K みたいな感じで使う。
あんまりいらない
この辺になると潰しても別に困りません。
"^J" accept-line "^Y" yank "^Q" push-line "^V" quoted-insert "^_" undo
全然いらない
いらない子です。
"^@" set-mark-command "^O" accept-line-and-down-history "^S" history-incremental-search-forward "^T" transpose-chars "^?" backward-delete-char
デフォルト割り当てなし
割り当てなしのキーです。
"^C" "^Z" "^\" "^^" "^]"
このうち"^C"
, "^Z"
, "^\"
は大事なので、そのまま残しておきます。他は勝手に使ってOKです。
まとめ
結局、「いらない機能、または割り当て無し」かつ「それなりに押しやすい」キーは以下になりました。
"^J" accept-line "^V" quoted-insert "^Y" yank "^@" set-mark-command "^O" accept-line-and-down-history "^S" history-incremental-search-forward "^^" "^]"
今後はこいつらを有効に活用することにします。ちなみに"^T"
もいらない子なんですが、もうすでにscreenで使っています。残念。