Masalah menggunakan tombol Ctrl + Panah di Vim saat menggunakan Byobu dengan tmux


12

Di Vim, saya telah mengatur tombol Ctrl + Arrow untuk melewati kata-kata. Ini berfungsi dengan baik ketika menjalankan Vim di dalam terminal gnome.

Namun, ketika menggunakan byobu (tmux), itu menunjukkan perilaku aneh: ia menghapus semuanya setelah kursor.

Untuk referensi, ini adalah pengaturan vim saya:

:inoremap <C-Left> <C-\><C-O>b
:inoremap <C-Right> <C-\><C-O>w

Jawaban:


7

Masalahnya ada dua. Pertama, tmuxsecara default mengkonversi tombol panah kontrol dari satu jenis urutan keluar ke yang lain. Jadi kunci khusus seperti controlleftdikirim ke vimtanpa pengubah, misalnya left,. Jika Anda menggunakan cat -vuntuk melihat urutan pelarian yang berbeda, Anda mungkin melihat sesuatu seperti ini

^[OD

versus ini (di luar tmux):

^[[1;5D

Garis

set-window-option -g xterm-keys on

memperbaiki aspek itu. Bagian lainnya adalah bahwa tmuxsecara default menggunakan deskripsi terminal untuk screen. Deskripsi terminal itu tidak menjelaskan tombol panah kontrol. Entri-entri ini dari basis data terminal akan menjadi yang paling tepat untuk VTE (gnome-terminal):

Ada yang lain, seperti

yang akan dipilih secara otomatis ketika berjalan di screenjika sesuai TERMluar yang vte, vte-256color, dll tmuxtidak melakukan hal ini otomatis seleksi; Anda harus memodifikasi file konfigurasinya.

Omong-omong, tidak ada entri "screen.xterm" karena akan mengganggu beberapa penggunaan screen. Tidak ada konflik dengan TERM=xterm-new.

Jika Anda memiliki basis data terminal default (minimal) seperti ncurses-basedi Debian, Anda mungkin tidak memilikinya. Akan lebih umum xterm-256color, yang cukup dekat untuk digunakan dengan vim dan tmux.

Misalnya, jika saya menambahkan ini ke .tmux.conffile saya , itu berperilaku seperti yang Anda harapkan di vim:

set -g default-terminal "xterm-256color"

Bacaan lebih lanjut:


Hmmm ... Ini berhasil :) Tapi hanya sebagian. Hanya Control+ Leftyang berfungsi; Control+ Righttidak. Saya akan menguji dan memperbarui nanti.
shivams

1
Anda mungkin memiliki beberapa pengikatan lain yang mengganggu kontrol + hak (memberikan rincian, saya dapat menawarkan saran).
Thomas Dickey

Terima kasih atas tawarannya :) Saya menyelidiki sedikit dan menemukan bahwa memang ada beberapa keybinding lain yang menyebabkan gangguan. Misalnya pada Mac saya ini berfungsi dengan baik, sedangkan di Linux (menggunakan Guake) tidak. Namun, saya kehabisan stasiun dan tidak dapat mengakses Linux saya. Saya akan memperbarui ketika saya menyelesaikan masalah.
shivams

@Thomam Dickey: Sementara itu, saya menerima jawaban Anda karena memang menyelesaikan masalah.
shivams

@ThomasDickey Saya hanya ingin mengatakan, "Go raibh míle maith agat" yang dalam bahasa Irlandia secara harfiah diterjemahkan sebagai "Semoga Anda memiliki seribu hal yang baik." Terima kasih banyak atas jawaban ini. Kamu adalah seorang bintang.
Rob

2

Dari sini Anda dapat melepaskan ikatan kombinasi tombol di byobu:

Buat file ~/.byobu/.tmux.confdengan (atau tambahkan jika file ada):

set-window-option -g xterm-keys on

Kemudian tambahkan yang berikut ke ~/.byobu/keybindings.tmux:

unbind-key -n C-Left
unbind-key -n C-Right

Ini tidak berhasil. Namun itu telah memberi saya petunjuk kuat. Saya akan mencoba mengikuti petunjuk dan mencari solusi. Terima kasih :)
shivams
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.