すべてのディストリビューション (必ずしもすべてのバージョンの zsh ではありませんが、ここでは ymmv) で移植できる適切な答えは、zkbd の zkbd ヘルパー ユーティリティを使用することです。
キーボードの定義
キーボード、ワークステーション、端末、エミュレーター、およびウィンドウ システムの多数の可能な組み合わせにより、zsh がすべての状況に対応する組み込みのキー バインドを持つことは不可能になります。Functions/Misc にある zkbd ユーティリティを使用すると、構成のキー バインドをすばやく作成できます。
zkbd をオートロード関数またはシェル スクリプトとして実行します。
zsh -f ~/zsh-4.3.17/Functions/Misc/zkbd
zkbd を実行すると、最初に端末タイプを入力するよう求められます。それが提供するデフォルトが正しい場合は、単にリターンを押してください。次に、キーボードと端末の特性を判断するために、いくつかの異なるキーを押すように求められます。zkbd は、^H も ^? も送信しない Delete キーなど、異常なものを検出すると警告します。
zkbd によって読み取られたキーストロークは、key という名前の連想配列の定義として記録され、HOME または ZDOTDIR ディレクトリ内のサブディレクトリ .zkbd 内のファイルに書き込まれます。ファイルの名前は、ハイフンで結合された TERM、VENDOR、および OSTYPE パラメータから構成されます。
source
またはコマンドを使用して、このファイルを .zshrc または別の起動ファイルに読み込み.
、次のように bindkey コマンドで key パラメータを参照できます。
source ${ZDOTDIR:-$HOME}/.zkbd/$TERM-$VENDOR-$OSTYPE
[[ -n ${key[Left]} ]] && bindkey "${key[Left]}" backward-char
[[ -n ${key[Right]} ]] && bindkey "${key[Right]}" forward-char
# etc.
autoload zkbd
が機能するには、ファイルが fpath 配列で指定されたディレクトリの 1 つにある必要があることに注意してzkbd
ください (zshparam(1) を参照)。標準の zsh インストールを使用している場合、これはすでに当てはまるはずです。そうでない場合は、Functions/Misc/zkbd を適切なディレクトリにコピーします。
を参照man -P "less -p 'keyboard definition'" zshcontrib
するか、メタマンページを検索してくださいzshall