Do we have a key bindings table that translates all the various ways of referring to a key press? I'm using zsh
, but I presume that if there was such a table it would work for any shell.
The reason I ask is that I'd like to assign some keybindings and I have no way of knowing how to refer to them (unless I'm going to steal one that's already defined).
For example, in 'zbindkey' we have this sort of thing:
[[ "$terminfo[kend]" == " O"* ]] && \
bindkey -M emacs "${terminfo[kend]/O/[}" end-of-line
... and I can guess that "kend" means that this refers to the End key.
Cross checking with bindkey
I see these lines:
"^E" end-of-line
"^[OF" end-of-line
"^[[F" end-of-line
... so I trust that one of those lines refers to the End key. Which one?
We also have this in the "bindkey" file:
bindkey "\e[A" history-beginning-search-backward
Now, I happen to know that that's the Up Arrow key, but how could I find out if I didn't know?
$ bindkey (at CLI)
... gives us a different language for the same key:
"^[[A" history-beginning-search-backward
... but at least now I know that ^[[A
in bindkey-at-CLI speak is the same thing as \e[A
in bindkey-in-zbindkey speak. That's easy. In the old days in DOS, the Up Arrow was 0;72
-- you could find the scan code of every legal keystroke and there was only the one language.
Is there a table? Or some other way of being able to pick a keystroke and know how to refer to it in terminfo[]
... in " bindkey-in-zbindkey " ... in "bindkey-at-CLI " and/or in whatever other languages there may happen to be?
Again, in DOS there was the scancode
program -- type a keystroke, and you got the scancode. It was sinfully easy.
From the answers I guess then that there is no way to print out a table of all possible bindings? Anyway 'bindkey' does almost what I want:
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
...
at least I can see all existing bindings, even if not all possible bindings. Now, if there was just some way of translating the key glyphs into 'regular' terms:
bindkey "Home" beginning-of-line
... then I'd be happy.
stty -a
sayslnext
is) then the key.