Kunci yang diketik dalam vim saat berjalan di dalam tmux


9

Saya telah bermain dengan tmux dan saya menyukainya. Namun, ada masalah yang mengganggu ketika menjalankan vim di dalamnya.

Entah bagaimana tombol panah dapat dipetakan kembali, tetapi hanya pada waktu-waktu tertentu, seperti ketika menjalankan Command-T, jika saya mencoba untuk menggulir ke bawah daftar file, perintah dibatalkan dan saya dilemparkan ke mode insert, dan tergantung pada tombol panah Saya menekan, A, B, C, atau D dimasukkan.

Jika saya menggunakan panah untuk bergerak melalui buffer misalnya, mereka berfungsi dengan baik.

Ada ide?

Terima kasih!


1
Apa yang ada di $TERMluar tmux? Bagaimana dengan di dalam? Sepertinya ada sesuatu yang terjadi dengan aplikasi dan mode keypad normal.
Dijeda sampai pemberitahuan lebih lanjut.

Di luar tmux: xterm, inside: screen ... jadi jika saya menjalankan TERM=screen vimsaya melihat perilaku yang sama, jadi saya harus memperbaiki layar?
Ivan

Jawaban:


13

Saya hanya menambahkan set -g default-terminal "xterm"ke .tmux.conf saya

Ini membuat tmux menggunakan xterm bukan layar, jadi hidup ini indah dan saya tidak perlu khawatir menginjak keybindings.


5
Lebih baik seperti ini set -g default-terminal "xterm-256color". Kalau tidak, saya tidak bisa melihat ketika dalam mode visual karena warna yang terbatas.
Macario

1
Saya harus menggabungkan ini dengan set -g xterm-keys on.
Dan Stahlke

4
Perlu dicatat bahwa halaman manual untuk tmux mengatakan untuk tidak pernah mengatur default-terminal. Saya tidak yakin apa akibatnya.
Dan Stahlke

1
Mengingat peringatan yang default-terminaltidak boleh diatur, mungkin ada perbaikan yang lebih baik dari sisi vim: tautan .
Dan Stahlke

Tidak bekerja dalam kasus saya ...
Blaszard

6

Akhirnya saya menemukan jawaban saya di sini: ketika menjalankan layar pada OSX, perintah + r mengacaukan tombol panah di vim di semua layar

Yang aneh adalah saya hanya menambahkan SATU pemetaan ke file .vimrc saya:

map <Esc>[B <Down>

Tapi pemetaan tunggal itu membuat SEMUA tombol panah berfungsi dengan benar ...


Entah bagaimana ... ini adalah satu-satunya solusi yang bekerja untuk saya di Centos 6.3
Patryk

Ini sama sekali tidak masuk akal bagi saya, tetapi menambahkan pemetaan tunggal tampaknya memperbaiki semua kunci untuk saya juga. Bahkan orang asing (setidaknya bagi saya) pemetaan langsung untuk penekanan tombol dalam mode insert tidak memperbaikinya ( map ^[A <Up>berfungsi dari menekan Ctrl + V <Up> dan menghapus O, map ^[OA <Up>dari menekan Ctrl + V <Up> dan meninggalkan O tidak 't). Saya tidak mengerti ... tapi terserah. Kunci saya sekarang berfungsi. Terima kasih.
ND Geek


1

Kalau-kalau ada orang yang marah dengan solusi ini tidak bekerja.

Periksa bahwa Anda sebenarnya tidak menggunakan tmux + vim + plugin AutoClose vim. Autoclose memetakan sesuatu yang menyebabkan Anda memasukkan karakter ABCD di baris sebelumnya!

Saya baru saja menghapus plugin dan berfungsi dengan baik sekarang


Terima kasih! Ini untuk saya. Saya akhirnya menggunakan plugin autoclose ini . Ini menyediakan fungsionalitas serupa.
ollpu

0

Command-T melakukan sesuatu yang bodoh dengan memetakan ketika berjalan di terminal. Itu melewatkan pemetaan jika $ TERM adalah vt100 * atau xterm *, tapi itu bukan solusi yang baik.


0

Bagi orang-orang yang ingin memindahkan kursor dalam mode baris perintah, lihat posting blog ini . Saya akhirnya menambahkan delapan baris di vimrc saya;

" Needed for tmux and vim to play nice
" Needed for tmux and vim to play nice
map <Esc>[A <Up>
map <Esc>[B <Down>
map <Esc>[C <Right>
map <Esc>[D <Left>

" Console movement
cmap <Esc>[A <Up>
cmap <Esc>[B <Down>
cmap <Esc>[C <Right>
cmap <Esc>[D <Left>
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.