Định cấu hình các phím chức năng trong PuTTY cho cả Vim và Midnight Commander trong tmux?


10

Trước hết, tôi biết rằng tôi có thể sử dụng Alt+ 1(đến 9 và 0) để tổng hợp các phím chức năng tương ứng ( F1thông qua F10) trong Midnight Commander. Nó đã giúp tôi rất nhiều lần, nhưng theo mặc định tôi vẫn nhấn các phím chức năng thực tế bằng trực giác.

Gist: Tôi đang cố chạy cả Vim và Midnight Commander trong một tmuxphiên (đôi khi là cửa sổ, đôi khi là khung), sử dụng PuTTY.

Vì vậy, theo mặc định tôi có cấu hình PuTTY sau:

Cấu hình bàn phím PuTTY

Với ESC[n~bản đồ

Vấn đề bây giờ khi ánh xạ ( map <F1> :tab help<CR>và cả nmapimap) F1trong Vim, là nó mang lại hiệu quả của ~(trường hợp chuyển đổi). Và quả thực nếu tôi bấm F1qua F5trong vỏ, dấu ngã ( ~) là kết quả, cùng với một cái chuông. Các phím chức năng hoạt động hoàn toàn tốt trong Midnight Commander, tuy nhiên, bằng cách sử dụng cài đặt này.

Có một điều kỳ lạ về cài đặt ở trên ngoài các vấn đề của tôi với F1: Tôi cũng "ánh xạ" F5( set pastetoggle=<F5>) trong Vim. Thật kỳ lạ , nó hoạt động như một bùa mê, mặc dù F5chìa khóa trên vỏ cho ~giống như F1vv

Lưu ý: khi chạy Vim bên ngoài tmux, ràng buộc mặc định (và ghi đè của tôi) F1hoạt động tốt!

Với ánh xạ "Linux"

Vì vậy, tự nhiên tôi đã cố gắng sử dụng cài đặt "Linux" trong hộp thoại ở trên. Vì vậy, khi tôi nhấn F1Vim sẽ chuyển sang chế độ chèn ở cuối dòng (hiệu ứng của A). Midnight Commander không nhận ra bất kỳ phím chức năng nào với cài đặt này. Chắc chắn trên vỏ F1cho tôi Avà một cái chuông ( F2a Bvà như vậy).

Tôi đang thiếu gì ở đây? Làm cách nào tôi có thể có hành vi thống nhất trong đó cả Midnight Commander và Vim sẽ nhận ra các phím chức năng?


Thông tin bổ sung:

Hệ thống từ xa là Ubuntu 14.04 với LANG=en_US.UTF-8.

TERMđược đặt TERM=xtermbên ngoài tmuxphiên và TERM=screenkhi nhìn từ bên trong khung hoặc cửa sổ.

Tôi không sử dụng:

set-option -g default-terminal "screen-256color"

để ghi đè loại thiết bị đầu cuối bên trong tmux.

Câu trả lời:


8

Vấn đề là TERM=xtermbên ngoài tmux. Không cấu hình của PuTTY phù hợp với xtermmô tả thiết bị đầu cuối và các nguồn cấp dữ liệu không khớp vào screenhoặc tmux(chọn lựa).

Xem ví dụ, trong FAQ của ncurses Tại sao không sử dụng TERM được đặt thành "xterm"? . Các khuyến nghị có tất nhiên để thiết lập

TERM=putty

Kiểm tra nhanh bằng cách sử dụng tackcho thấy sự kết hợp này ( TERM=putty, tmux) hoạt động cho Ubuntu 14.04 (bạn nên cài đặt ncurses-termgói, bao gồm cả gói này).


Cảm ơn. Trên thực tế tôi không thể tìm thấy tackgì cả, không apt-file searchphải sau khi cài đặt gói bạn đề nghị. Nhưng toe -a|grep -i puttyxác nhận rằng một số định nghĩa thiết bị đầu cuối PuTTY tồn tại (bao gồm a putty-256color). Tôi sẽ dùng thử và lấy lại cho bạn và cũng chấp nhận.
0xC0000022L

Tôi đã không nhận thấy rằng tack không có trong Ubuntu 14.04 (nó đã có trong Debian một thời gian, nhưng có lẽ đã bị bỏ qua khi tôi tách nó ra khỏi tarball nguồn ncurses). Kiểm tra máy của tôi, có vẻ như tôi đang chạy một trong các gói của mình.
Thomas Dickey
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.