Bagaimana cara mengikat <Control> <Arrowkey> di Mutt?


9

Saya terjebak di sini:

Apakah mungkin untuk mengikat salah satu dari mereka <enter>, <backspace>, <up>, <down>, <left>, <right>dengan kontrol?

\C<foo>muncul seperti |foo>dalam bantuan dan ^<up>tidak terikat.
'\C<foo>, '\C <foo>'jangan bekerja juga (sama dengan "sebaliknya).

<control> tidak ada.

Anda benar-benar bisa mendapatkan ^<foo>untuk muncul dalam membantu, tetapi hanya jika Anda peta ^<foo>, yang tidak persis apa yang saya inginkan. ;)

Jawaban:


5

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+ V Ctrl+ 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.
Gilles 'SO- stop being evil'

15

Saya menemukan jawaban yang benar di sini :

Di dalam mutt, gunakan perintah

:exec what-key

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.


4
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.
Jangid
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.