Hậu quả của cài đặt tmux 'thời gian thoát 0'?


16

Tôi thấy rằng khi chạy (neo) vim bên trong tmux, phím thoát bị trì hoãn. Điều này được khắc phục bằng cách đặt

set -sg escape-time 0

trong tôi .tmux.conf. Có lẽ, điều này vô hiệu hóa khả năng sử dụng ESC làm khóa "meta". Giả sử rằng tôi luôn làm việc với các bàn phím có phím Alt để hoạt động như "meta", tôi tự hỏi những hậu quả không mong muốn tiềm tàng nào mà cài đặt có thể gây ra.

Câu trả lời:


16

Cài đặt escape-timethành không can thiệp vào các phím chức năng nhận dạng tmux. Trang hướng dẫn của nó nói

escape-time time
Đặt thời gian tính bằng mili giây mà tmux đợi sau khi thoát là đầu vào để xác định xem đó có phải là một phần của chuỗi chức năng hoặc chuỗi meta không. Mặc định là 500 mili giây.

Thuật ngữ "phím chức năng" áp dụng cho bất kỳ thứ gì có định dạng đó (bao gồm pageup, được sử dụng trong cuộn bởi tmux và phím con trỏ). 500 mili giây có thể là quá mức nếu bạn không bao giờ làm việc từ xa. 20 mili giây là khả thi cho các kết nối địa phương. Sự tương tự ESCDELAYtrong ncurses mặc định là 1000 mili giây; chỉ một phần rất nhỏ người dùng thấy cần phải thay đổi điều đó.


hmm ... các phím mũi tên và pageup dường như hoạt động tốt trong tmux, ngay cả khi thời gian thoát được đặt thành 0
Michael Goerz 20/07/2015

1
Tài liệu đề cập đến các ràng buộc chính được xử lý bởi tmux (không phải các ứng dụng chạy bên trong tmux).
Thomas Dickey

@AntoineCotten Bạn có thể mở rộng về điều đó? Tôi nghĩ rằng Metakhông gửi được gì cho đến khi nó được ghép nối với một phím không có chức năng, tại thời điểm đó, nó sẽ gửi thoát và khóa "cùng một lúc" (độ trễ ít hơn bất kỳ giai đoạn bỏ phiếu hợp lý nào, giả sử nó bỏ phiếu thay vì sử dụng ngắt hoặc một cái gì đó.) Tôi đã theo dõi ruột của mình và không bao giờ đặt thời gian thoát dưới 10, chủ yếu là vì tôi dự kiến ​​nó sẽ gây ra vấn đề nếu mặc định quá cao.
John P

Hành vi của Meta phụ thuộc vào thiết bị đầu cuối. tmuxkhông có bất kỳ sự kiểm soát nào về điều đó, nhưng không biết về các khóa đặc biệt của xterm (trong một bảng). Meta cho một khóa thông thường trong xterm làm một cái gì đó (tìm eightBitInputtrong hướng dẫn). Đối với các thiết bị đầu cuối khác, nó có thể làm một cái gì đó, nhưng thường là không có giấy tờ.
Thomas Dickey

@JohnP @ThomasDickey Trước đây tôi đã nhận xét rằng các cài đặt escape-timevề 0 đã can thiệp vào các lệnh Meta trong trình giả lập thiết bị đầu cuối của tôi. Tôi muốn điều chỉnh, điều này chỉ đúng vì thiết bị đầu cuối macOS sử dụng Esclàm khóa Meta . Không có vấn đề khi sử dụng một khóa khác như Alt . Xin lỗi cho nhận xét sai lệch (đã xóa).
Antoine Cotten
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.