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 bindkey
Widzę 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 ^[[A
w bindkey-at-CLI speak jest to samo, co \e[A
w 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ł scancode
program - 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.