Есть ли у нас таблица привязок клавиш, которая переводит все различные способы обращения к нажатию клавиши? Я использую zsh
, но я предполагаю, что если бы была такая таблица, она бы работала для любой оболочки.
Причина, по которой я спрашиваю, состоит в том, что я хотел бы назначить некоторые сочетания клавиш, и у меня нет никакого способа узнать, как ссылаться на них (если я не собираюсь украсть тот, который уже определен).
Например, в 'zbindkey' у нас есть такие вещи:
[[ "$terminfo[kend]" == " O"* ]] && \
bindkey -M emacs "${terminfo[kend]/O/[}" end-of-line
... и я могу догадаться, что "кенд" означает, что это относится к Endключу.
Перекрестная проверка с bindkey
я вижу эти строки:
"^E" end-of-line
"^[OF" end-of-line
"^[[F" end-of-line
... поэтому я верю, что одна из этих строк относится к Endключу. Который из?
У нас также есть это в файле "bindkey":
bindkey "\e[A" history-beginning-search-backward
Теперь я знаю, что это Up Arrowключ, но как я могу узнать, если я не знал?
$ bindkey (at CLI)
... дает нам другой язык для того же ключа:
"^[[A" history-beginning-search-backward
... но, по крайней мере, теперь я знаю, что ^[[A
в bindkey-at-CLI речь - то же самое, что и \e[A
в bindkey-in-zbindkey. Это легко. В старые времена в DOS, Up Arrow был0;72
- вы могли найти код сканирования каждого легального нажатия клавиши, и был только один язык.
Есть ли стол? Или какой-то другой способ выбрать нажатие клавиши и узнать, как ссылаться на него в terminfo[]
... в "bindkey-in-zbindkey" ... в "bindkey-at-CLI" и / или в любых других языках, которые могут случается?
Опять же, в DOS была scancode
программа - нажмите клавишу, и вы получили скан-код. Это было греховно легко.
Из ответов я думаю, что нет способа распечатать таблицу всех возможных привязок? В любом случае, «bindkey» делает почти то, что я хочу:
pts/2 HP-y5-10-Debian1 root /aWorking/Docs $ bindkey -L
bindkey "^@" set-mark-command
bindkey "^A" beginning-of-line
bindkey "^B" backward-char
bindkey "^D" delete-char-or-list
bindkey "^E" end-of-line
...
по крайней мере, я могу видеть все существующие привязки, даже если не все возможные привязки. Теперь, если бы был какой-то способ перевести ключевые символы в «обычные» термины:
bindkey "Home" beginning-of-line
... тогда я был бы счастлив.
stty -a
написаноlnext
), затем нажмите клавишу.