Abbiamo una tabella di associazioni dei tasti che traduce tutti i vari modi di fare riferimento a una pressione del tasto? Sto usando zsh
, ma presumo che se ci fosse una tabella del genere funzionerebbe per qualsiasi shell.
Il motivo per cui chiedo è che vorrei assegnare alcune combinazioni di tasti e non ho modo di sapere come fare riferimento a loro (a meno che non ho intenzione di rubare uno già definito).
Ad esempio, in 'zbindkey' abbiamo questo genere di cose:
[[ "$terminfo[kend]" == " O"* ]] && \
bindkey -M emacs "${terminfo[kend]/O/[}" end-of-line
... e posso immaginare che "kend" significhi che questo si riferisce alla Endchiave.
Controllo incrociato con bindkey
Vedo queste righe:
"^E" end-of-line
"^[OF" end-of-line
"^[[F" end-of-line
... quindi confido che una di quelle righe si riferisca alla Endchiave. Quale?
Abbiamo anche questo nel file "bindkey":
bindkey "\e[A" history-beginning-search-backward
Ora, capisco che questa è la Up Arrowchiave, ma come potrei scoprire se non lo sapessi?
$ bindkey (at CLI)
... ci dà una lingua diversa per la stessa chiave:
"^[[A" history-beginning-search-backward
... ma almeno ora so che ^[[A
in bindkey-in-CLI speak è la stessa cosa che \e[A
in bindkey-in-zbindkey speak. Questo è facile. Ai vecchi tempi in DOS, Up Arrow c'era 0;72
: era possibile trovare il codice di scansione di ogni sequenza di tasti legale e c'era solo una lingua.
C'è un tavolo? O qualche altro modo di essere in grado di scegliere una terminfo[]
sequenza di tasti e sapere come fare riferimento ad esso in ... in "bindkey-in-zbindkey" ... in "bindkey-at-CLI" e / o in qualunque altra lingua capita di essere?
Ancora una volta, in DOS c'era il scancode
programma: digita una sequenza di tasti e ottieni lo scancode. È stato peccaminosamente facile.
Dalle risposte immagino quindi che non c'è modo di stampare una tabella di tutti i possibili collegamenti? Comunque 'bindkey' fa quasi quello che voglio:
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
...
almeno posso vedere tutti i binding esistenti, anche se non tutti i possibili binding. Ora, se ci fosse solo un modo per tradurre i glifi chiave in termini "regolari":
bindkey "Home" beginning-of-line
... allora sarei felice.
stty -a
dicalnext
) quindi il tasto.