zsh: `key` -> `terminfo` 事前定義はどこにありますか?

zsh: `key` -> `terminfo` 事前定義はどこにありますか?

私は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に関するドキュメントは見つかりません。 -ing forは情報を表示しなくなり、-ing forエントリも表示しません。最も関連性の高い一致は次のとおりです。keygrepman zshall | grep -i "key.*\["man zshzlebindkeyman 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.
...

もっと例を見つけました。ウィキペディアそしてUnix.SEで@rayandrewsからの返信、パラメータの完全なリストは表示されず、そうであると主張されず、keyパラメータが定義されている場所/方法の説明もありませんkey

key[...]詳細と使い方はどこで確認できますか?

ベストアンサー1

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]}"
    )

出身ですその約束Debianzshパッケージ5.0.0-1。

おそらく、ArchがzshrcDebianからコピーしたかもしれません。とにかく、これはアップストリームzshディストリビューションの一部ではありません。

以下を使用して、いつでもハッシュ定義を表示できます$key

typeset -p key | sed -n l

または

printf '%q => %q\n' "${(@kv)key}"

おすすめ記事