Apa urutan pelarian ANSI gnome-terminal untuk “CTRL + panah / s”?

10

Saya mencoba untuk mengkonfigurasi pesta saya ~/.inputrcuntuk pengaturan ini
(Catatan: , berarti tombol panah kiri dan kanan)

  • Ctrl+ - harus melompat mundur satu kata
  • Ctrl+ - harus melompat maju satu kata

Saat ini saya punya ini di saya ~/.inputrcdan tidak berfungsi. Ctrl + arrowtidak menghasilkan apa-apa.

"\eC-5C":forward-word
"\eC-5D":backward-word

Saya yakin urutan pelarian saya salah.
Apa urutan pelarian yang benar untuk Ctrl + arrowkombinasi?

  • terminal: tmux di dalam gnome-terminal
the_velour_fog
sumber

Jawaban:

14

Gnome-terminal (lebih tepat VTE ) meniru beberapa versi dari urutan escape xterm. Seberapa dekat hal ini tergantung pada versi VTE.

Dokumentasi xterm yang relevan ada di bagian Tombol Fungsi PC-Style dari XTerm Control Sequences .

Apa yang Anda cari adalah string seperti \e[1;5D(untuk kontrol panah kiri), di mana 5menunjukkan controlpengubah.

Dalam ncurses, Anda dapat melihat string ini menggunakan infocmp -x, sebagai nilai-nilai untuk kUP5, kDN5, kLFT5dan kRIT5. Sebagai contoh:

    kDN5=\E[1;5B,
    kLFT5=\E[1;5D,
    kRIT5=\E[1;5C,        
    kUP5=\E[1;5A,
Thomas Dickey
sumber
terima kasih atas tanggapan dan tautan ke sumber daya. Ini memecahkan masalah bagi saya!
the_velour_fog
16

Cara paling sederhana untuk menemukan kode apa dari urutan kunci adalah dengan menggunakan ctrl- v.

Jadi, Anda mengetik ctrl Vdan ctrl mendapatkan:

^[[1;5C

Yang merupakan cara untuk menulis ESC[1;5Catau \e[1;5C.


sumber
Wow Keren. apakah Anda tahu apakah itu fitur yang dimaksudkan dari terminal gnome, atau apakah itu sesuatu yang ditemukan secara tidak sengaja?
the_velour_fog
Baik zsh ( bindkey|grep 'quoted-insert') dan bash ( bind -p|grep 'quoted-insert') memiliki kunci yang mengikat untuk menampilkan kode kunci yang ditetapkan <c-v>.
Kba berdiri dengan Monica
1
Untuk apa nilainya, Ctrl-V melakukan fungsi yang sama dalam mode Sisipkan dan Perintah Vim.
joeytwiddle
4
@the_velour_fog Ctrl + V yang berarti "masukkan karakter berikutnya daripada menafsirkannya sebagai perintah terminal" tanggal kembali dari hari-hari awal Unix. Ini adalah fitur pemrosesan baris perintah kernel yang telah ditiru oleh sistem input yang lebih canggih seperti bash, zsh, vi, ...
Gilles 'SO-stop being evil'
1
@ kba Sebagai catatan, mereka bukan satu-satunya. Bash sebenarnya disediakan oleh pustaka GNU Readline yang bergantung padanya, yang juga mengikatnya <c-q>agar sesuai dengan kunci Emacs dan menyalinnya. Zsh juga mengikat keduanya <c-v>dan <c-q>tetapi hanya jika Anda mengaktifkan mode Vim, cukup ironis. Readline juga digunakan oleh hal-hal lain seperti import rlcompleterpeningkatan Python . (Sumber: tiswww.case.edu/php/chet/readline/readline.html#SEC9 dan man zshzle)
ssokolow