現在、zsh
を学習しており、~/.zshrc
を構成しています。 Archwikiで、 履歴検索動作を変更するためのスニペット を見つけました:
autoload -Uz up-line-or-beginning-search down-line-or-beginning-search
zle -N up-line-or-beginning-search
zle -N down-line-or-beginning-search
[[ -n "$key[Up]" ]] && bindkey -- "$key[Up]" up-line-or-beginning-search
[[ -n "$key[Down]" ]] && bindkey -- "$key[Down]" down-line-or-beginning-search
しかし、man
ページを精査した後、key
キーワードまたはそれが取ることができるパラメータに関するドキュメントが見つかりません。 man zshall | grep -i "key.*\["
のgrep
-ingは、これ以上の情報を表示せず、bindkey
のman zshzle
エントリも表示しません。最も関連性の高い一致は、man zshcontrib
から次のとおりです。
...
source ${ZDOTDIR:-$HOME}/.zkbd/$TERM-$VENDOR-$OSTYPE
[[ -n ${key[Left]} ]] && bindkey "${key[Left]}" backward-char
[[ -n ${key[Right]} ]] && bindkey "${key[Right]}" forward-char
# etc.
...
zshwiki および nix.SEの@rayandrewsからの回答 でさらに例を見つけましたが、どちらもkey
、またはkey
が定義されている場所/方法についても説明しません。
key[...]
の詳細とその使用方法はどこで確認できますか?
Debianでは、/etc/zsh/zshrc
には次のものがあります。
typeset -A key
key=(
BackSpace "${terminfo[kbs]}"
Home "${terminfo[khome]}"
End "${terminfo[kend]}"
Insert "${terminfo[kich1]}"
Delete "${terminfo[kdch1]}"
Up "${terminfo[kcuu1]}"
Down "${terminfo[kcud1]}"
Left "${terminfo[kcub1]}"
Right "${terminfo[kcuf1]}"
PageUp "${terminfo[kpp]}"
PageDown "${terminfo[knp]}"
)
そのコミット によってzsh
Debianパッケージ5.0.0-1に追加されました。
おそらくArchはそのzshrc
をDebianからコピーしました。いずれにせよ、それはアップストリームのzshディストリビューションの一部ではありません。
$key
ハッシュの定義は、次のようにしていつでも確認できます。
typeset -p key | sed -n l
または
printf '%q => %q\n' "${(@kv)key}"