Czy mamy tabelę powiązań klawiszy, która tłumaczy różne sposoby odwoływania się do naciśnięcia klawisza? Używam zsh, ale zakładam, że gdyby istniał taki stół, działałby on dla dowolnej powłoki.
Powód, dla którego pytam, jest taki, że chciałbym przypisać niektóre skróty klawiszowe i nie mam sposobu, aby się do nich odwoływać (chyba że zamierzam ukraść takie, które już zostały zdefiniowane).
Na przykład w zbindkey mamy coś takiego:
[[ "$terminfo[kend]" == " O"* ]] && \
bindkey -M emacs "${terminfo[kend]/O/[}" end-of-line
... i zgaduję, że „kend” oznacza, że odnosi się to do Endklucza.
Sprawdzanie krzyżowe z bindkeyWidzę te linie:
"^E" end-of-line
"^[OF" end-of-line
"^[[F" end-of-line
... wierzę więc, że jedna z tych linii odnosi się do Endklucza. Który?
Mamy to również w pliku „bindkey”:
bindkey "\e[A" history-beginning-search-backward
Teraz zdaję sobie sprawę, że to jest Up Arrowklucz, ale jak mogę się dowiedzieć, jeśli nie wiem?
$ bindkey (at CLI)
... daje nam inny język dla tego samego klucza:
"^[[A" history-beginning-search-backward
... ale przynajmniej teraz wiem, że ^[[Aw bindkey-at-CLI speak jest to samo, co \e[Aw bindkey-in-zbindkey speak. To łatwe. W dawnych czasach w DOS Up Arrow było 0;72- można było znaleźć kod skanowania każdego legalnego naciśnięcia klawisza i był tylko jeden język.
Jest tam stolik? Lub inny sposób na wybranie naciśnięcia klawisza i wiedzieć, jak się do niego odwoływać w terminfo[]... w „bindkey-in-zbindkey” ... w „bindkey-at-CLI” i / lub w jakimkolwiek innym języku zdarzyło się być?
Ponownie, w DOSie był scancodeprogram - wciśnij klawisz, a otrzymasz scancode. To było grzesznie łatwe.
Z odpowiedzi wydaje mi się, że nie ma sposobu, aby wydrukować tabelę wszystkich możliwych powiązań? W każdym razie „bindkey” robi prawie to, co chcę:
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
...
przynajmniej widzę wszystkie istniejące powiązania, nawet jeśli nie wszystkie możliwe powiązania. Teraz, jeśli istnieje tylko sposób na przełożenie kluczowych glifów na „zwykłe” terminy:
bindkey "Home" beginning-of-line
... wtedy byłbym szczęśliwy.
stty -a, co mówilnext), a następnie klawisz.