Apakah kita memiliki tabel ikatan utama yang menerjemahkan semua berbagai cara untuk merujuk ke penekanan tombol? Saya menggunakan zsh
, tetapi saya menganggap bahwa jika ada meja seperti itu akan bekerja untuk shell apa pun.
Alasan saya bertanya adalah bahwa saya ingin menetapkan beberapa keybindings dan saya tidak memiliki cara untuk mengetahui bagaimana merujuk kepada mereka (kecuali saya akan mencuri yang sudah ditentukan).
Misalnya, dalam 'zbindkey' kita memiliki hal semacam ini:
[[ "$terminfo[kend]" == " O"* ]] && \
bindkey -M emacs "${terminfo[kend]/O/[}" end-of-line
... dan saya dapat menebak bahwa "kend" berarti bahwa ini mengacu pada End kunci.
Pemeriksaan silang dengan bindkey
saya melihat baris-baris ini:
"^E" end-of-line
"^[OF" end-of-line
"^[[F" end-of-line
... jadi saya percaya bahwa salah satu dari kalimat itu merujuk ke End kuncinya. Yang mana?
Kami juga memiliki ini di file "bindkey":
bindkey "\e[A" history-beginning-search-backward
Sekarang, saya kebetulan tahu bahwa itulah Up Arrowkuncinya, tetapi bagaimana saya bisa mengetahui jika saya tidak tahu?
$ bindkey (at CLI)
... memberi kami bahasa yang berbeda untuk kunci yang sama:
"^[[A" history-beginning-search-backward
... tapi setidaknya sekarang saya tahu bahwa ^[[A
dalam bindkey-at-CLI, bicara adalah hal yang sama seperti \e[A
dalam bindkey-in-zbindkey. Itu mudah. Di masa lalu di DOS, Up Arrow itu0;72
- Anda dapat menemukan kode pemindaian setiap penekanan tombol hukum dan hanya ada satu bahasa.
Apakah ada meja? Atau cara lain untuk bisa memilih keystroke dan tahu cara merujuknyaterminfo[]
... di "bindkey-in-zbindkey" ... di "bindkey-at-CLI" dan / atau dalam bahasa apa pun yang mungkin ada kebetulan?
Sekali lagi, di DOS ada scancode
program - ketik keystroke, dan Anda mendapatkan kode kunci. Itu mudah dan berdosa.
Dari jawaban saya kira maka tidak ada cara untuk mencetak tabel dari semua kemungkinan binding? Pokoknya 'bindkey' melakukan hampir apa yang saya inginkan:
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
...
setidaknya saya bisa melihat semua binding yang ada, bahkan jika tidak semua binding mungkin . Sekarang, jika hanya ada beberapa cara menerjemahkan mesin terbang utama ke dalam istilah 'biasa':
bindkey "Home" beginning-of-line
... maka saya akan senang.
stty -a
dikatakanlnext
adalah) lalu kuncinya.