Pertama, Anda perlu menentukan apakah terminal Anda mengirimkan urutan pelarian yang berbeda untuk kombinasi kunci ini. Aplikasi yang berjalan di terminal mendapatkan karakter sebagai input, bukan kunci. Tombol fungsi dikodekan sebagai karakter kontrol atau sebagai urutan escape yang dimulai dengan karakter escape (yang dapat Anda tulis seperti \epada penjilidan kunci).
Untuk melihat urutan keluar yang dikirim oleh kombinasi tombol di terminal, tekan Ctrl+ Vpada prompt shell, lalu tekan kombinasi tombol. Misalnya, jika saya menekan Ctrl+ VCtrl+ Leftpada prompt shell, saya mengerti ^[O5D. ^[adalah karakter pelarian, jadi saya harus mengikat \eO5DMutt untuk membuatnya bereaksi terhadap Ctrl+ Left:
bind editor \eO5D backward-word
Beberapa terminal mengirim urutan pelepasan yang sama untuk kunci yang sama dengan pengubah yang berbeda. Jika itu masalahnya, Anda harus mengetahui cara mengubah perilaku terminal atau beralih ke terminal lain.
Kedengarannya bagus, tetapi tidak berhasil. \eadalah kunci pelarian, bukan karakter pelarian ...
Profpatsch
@Profpatsch Aneh, ikatan itu cocok untuk saya Saya telah menggunakan Mutt 1.5 sejak sekitar selamanya, mungkin 1.4 bekerja secara berbeda? Apakah bekerja jika Anda menggunakan \edalam makro: macro editor \e[O5D \eb?
Gilles 'SO- stop being evil'
1
Saya menggunakan Terminator, ketika saya menekan Ctrl+Downsaya dapatkan ^[[1;5B, itu tidak bekerja dengan bind index \e[1;5B commanddan tidak dengan \e1;5B juga. Oh, saya bekerja dengan Mutt 1.5.21 (Arch.;)
Profpatsch
1
@ Profpatsch Oke, saya bisa mereproduksi ini. Tampaknya ada batasan untuk 5 karakter: bind editor \e[1\;5 backward-wordberfungsi untuk saya (dan memasukkan tambahan Dsaat saya masuk ESC [ 1 ; 5 D), tetapi bind editor \e[1\;5D backward-wordmenghasilkan ESC [ 1 ; 5 Dtidak melakukan apa-apa. Saya melihat batasan hingga 8 karakter dalam kode sumber ( MAX_SEQ), tetapi tidak ada yang memicu pada 5 karakter.
Gilles 'SO- stop being evil'
@ Profilpatsch Suatu solusi adalah membuat terminal Anda mengirim urutan yang lebih pendek. Saya tidak tahu apakah Terminator mendukung ini.
Kemudian dengan menekan tombol yang diinginkan (seperti Ctrl + panah) Anda bisa belajar cara referensi tombol apa saja. Dalam kasus saya, saya dapatkan <C-Up>untuk Ctrl + Up.
Jika Anda berhasil menggunakan :exec what-keyuntuk mendapatkan informasi ini, tetapi kemudian tidak dapat menemukan "kunci apa" untuk menekan untuk keluar dari what-keyperintah, urutan kunci untuk keluar adalah Ctrl-g.
KDN
@KDN: Terima kasih. Agak memalukan. ;)
Teekin
@KDN Ctrl-gdigunakan untuk membatalkan perintah di emacs dan banyak shell unix.
\e
adalah kunci pelarian, bukan karakter pelarian ...\e
dalam makro:macro editor \e[O5D \eb
?Ctrl+Down
saya dapatkan^[[1;5B
, itu tidak bekerja denganbind index \e[1;5B command
dan tidak dengan\e1;5B
juga. Oh, saya bekerja dengan Mutt 1.5.21 (Arch.;)bind editor \e[1\;5 backward-word
berfungsi untuk saya (dan memasukkan tambahanD
saat saya masukESC [ 1 ; 5 D
), tetapibind editor \e[1\;5D backward-word
menghasilkanESC [ 1 ; 5 D
tidak melakukan apa-apa. Saya melihat batasan hingga 8 karakter dalam kode sumber (MAX_SEQ
), tetapi tidak ada yang memicu pada 5 karakter.Saya menemukan jawaban yang benar di sini :
Di dalam mutt, gunakan perintah
Kemudian dengan menekan tombol yang diinginkan (seperti Ctrl + panah) Anda bisa belajar cara referensi tombol apa saja. Dalam kasus saya, saya dapatkan
<C-Up>
untuk Ctrl + Up.sumber
:exec what-key
untuk mendapatkan informasi ini, tetapi kemudian tidak dapat menemukan "kunci apa" untuk menekan untuk keluar dariwhat-key
perintah, urutan kunci untuk keluar adalahCtrl-g
.Ctrl-g
digunakan untuk membatalkan perintah di emacs dan banyak shell unix.