Phím lộn xộn trong vim khi chạy bên trong tmux


9

Tôi đã chơi với tmux và tôi yêu nó. Tuy nhiên, có một vấn đề gây phiền nhiễu khi chạy vim bên trong nó.

Bằng cách nào đó, các phím mũi tên được ánh xạ lại, nhưng chỉ trong một số thời điểm nhất định, như khi kích hoạt Command-T, nếu tôi cố cuộn xuống danh sách tệp, lệnh sẽ bị hủy và tôi bị ném vào chế độ chèn, và tùy thuộc vào phím mũi tên Tôi nhấn, một A, B, C hoặc D được chèn vào.

Nếu tôi sử dụng các mũi tên để di chuyển qua một bộ đệm chẳng hạn, chúng hoạt động đúng.

Có ý kiến ​​gì không?

Cảm ơn!


1
Bên $TERMngoài là tmuxgì? Còn bên trong thì sao? Có vẻ như một cái gì đó đang xảy ra với ứng dụng và các chế độ bàn phím bình thường.
Tạm dừng cho đến khi có thông báo mới.

Bên ngoài tmux: xterm, bên trong: màn hình ... vậy nếu tôi chạy TERM=screen vimtôi thấy hành vi tương tự, vậy tôi phải sửa màn hình?
Ivan

Câu trả lời:


13

Tôi chỉ cần thêm vào set -g default-terminal "xterm".tmux.conf của tôi

Điều này khiến tmux sử dụng xterm thay vì màn hình, vì vậy cuộc sống rất đẹp và tôi không cần phải lo lắng về việc dậm chân trên bàn phím.


5
Tốt hơn như thế này set -g default-terminal "xterm-256color". Nếu không, tôi không thể nhận thấy khi ở chế độ trực quan do màu sắc hạn chế.
Macario

1
Tôi đã phải kết hợp điều này với set -g xterm-keys on.
Dan Stahlke

4
Điều đáng chú ý là trang man cho tmux nói không bao giờ được đặt default-terminal. Tôi không chắc chắn các phân nhánh là gì.
Dan Stahlke

1
Đưa ra cảnh báo default-terminalkhông nên được đặt, có lẽ có một cách khắc phục tốt hơn từ phía vim: link .
Dan Stahlke

Không hoạt động trong trường hợp của tôi ...
Blaszard

6

Cuối cùng tôi đã tìm thấy câu trả lời của mình ở đây: khi chạy màn hình trên OSX, lệnh + r làm rối các phím mũi tên trong vim trên tất cả các màn hình

Điều kỳ lạ là tôi chỉ thêm MỘT ánh xạ vào tệp .vimrc của mình:

map <Esc>[B <Down>

Nhưng ánh xạ đơn đó làm cho TẤT CẢ các phím mũi tên hoạt động chính xác ...


Bằng cách nào đó ... đây là giải pháp duy nhất hiệu quả với tôi trên Centos 6.3
Patryk

Điều này hoàn toàn không có ý nghĩa với tôi, nhưng thêm một ánh xạ duy nhất xuất hiện để sửa tất cả các khóa cho tôi. Ngay cả người lạ (ít nhất là với tôi), ánh xạ trực tiếp cho phím nhấn trong chế độ chèn không khắc phục được ( map ^[A <Up>hoạt động từ nhấn Ctrl + V <Up> và xóa O, map ^[OA <Up>từ nhấn Ctrl + V <Up> và để O không 't). Tôi không hiểu ... nhưng sao cũng được. Chìa khóa của tôi bây giờ hoạt động. Cảm ơn bạn.
ND Geek


1

Chỉ trong trường hợp ai đó tình cờ phát điên với giải pháp này không hoạt động.

Kiểm tra xem bạn không thực sự sử dụng plugin tmux + vim + AutoClose vim. Tự động đóng bản đồ một cái gì đó khiến bạn có ký tự ABCD được chèn vào dòng trước!

Tôi vừa xóa plugin và nó hoạt động tốt


Cảm ơn bạn! Đây là nó cho tôi. Thay vào đó, tôi đã sử dụng plugin tự động đóng gói này . Nó cung cấp chức năng tương tự.
ollpu

0

Command-T làm điều gì đó ngớ ngẩn bằng cách ánh xạ khi chạy trong một thiết bị đầu cuối. Nó bỏ qua ánh xạ nếu $ TERM là vt100 * hoặc xterm *, nhưng đó không phải là một giải pháp tốt.


0

Đối với những người muốn di chuyển con trỏ trong chế độ dòng lệnh, hãy xem bài đăng trên blog này . Tôi đã kết thúc việc thêm tám dòng trong vimrc của tôi;

" 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>
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.