Vấn đề là gấp đôi. Đầu tiên, tmuxtheo mặc định chuyển đổi các phím mũi tên điều khiển từ một loại chuỗi thoát sang loại khác. Vì vậy, các khóa đặc biệt như controlleftđược gửi đến vimmà không cần sửa đổi, ví dụ : left. Nếu bạn sử dụng cat -vđể xem các chuỗi thoát khác nhau, bạn có thể thấy một cái gì đó như thế này
^[OD
so với điều này (bên ngoài tmux):
^[[1;5D
Dòng
set-window-option -g xterm-keys on
sửa chữa khía cạnh đó. Phần khác là tmuxtheo mặc định sử dụng mô tả thiết bị đầu cuối cho screen. Mô tả thiết bị đầu cuối đó không mô tả các phím mũi tên điều khiển. Các mục từ cơ sở dữ liệu đầu cuối sẽ phù hợp nhất với VTE (gnome-terminal):
Có những cái khác, chẳng hạn như
mà sẽ được tự động chọn khi chạy trong screennếu tương ứng TERMbên ngoài đã vte, vte-256colorvv tmuxkhông làm điều này tự động lựa chọn; bạn phải sửa đổi tập tin cấu hình của nó.
Nhân tiện, không có mục "screen.xterm" vì nó sẽ can thiệp vào một số cách sử dụng screen. Không có xung đột với TERM=xterm-new.
Nếu bạn có cơ sở dữ liệu đầu cuối mặc định (tối thiểu) như ncurses-basetrong Debian, bạn có thể không có cơ sở dữ liệu đó. Phổ biến hơn sẽ là xterm-256color, đủ gần để sử dụng với vim và tmux.
Ví dụ: nếu tôi thêm phần này vào .tmux.conftệp của mình , nó sẽ hoạt động như bạn mong đợi trong vim:
set -g default-terminal "xterm-256color"
Đọc thêm:
Control+Leftđang hoạt động;Control+Rightkhông. Tôi sẽ kiểm tra và cập nhật sau.