2011-10-31 23 views

Trả lời

14

Nếu mọi thứ khác được cấu hình đúng, nó phải là đơn giản như đặt này trong thư mục .tmux.conf:

set-option -g prefix Home 

Lưu ý: Trừ khi bạn tự “nguồn” của bạn .tmux.conf, thay đổi các tập tin sẽ chỉ mất ảnh hưởng khi máy chủ tmuxmáy chủ được khởi động lại. Xóa sạch tất cả các cửa sổ, cửa sổ của bạn (do đó đóng tất cả các phiên của bạn và để máy chủ thoát) hoặc sử dụng tmux kill-server, sau đó bắt đầu phiên mới.

này sẽ chỉ làm việc nếu mô phỏng thiết bị của bạn đang gửi một dãy thoát phù hợp với khome lĩnh vực mục cơ sở dữ liệu terminfo cho TERM giá trị có hiệu lực khi bạn kết nối với tmux phiên của bạn (tức là TERM “bên ngoài” tmux).

tạo thoát Chuỗi cho chủ

Bạn có thể xác minh dãy thoát gửi bởi mô phỏng thiết bị của bạn bằng cách gõ phím Home (và một dòng mới) vào cat -v (bạn có thể hủy bỏ mèo với kiểm soát - C khi nó hiển thị cho bạn chuỗi). Các câu trả lời phổ biến có thể là ^[[1~ hoặc ^[OH.

Dự kiến ​​Thoát Chuỗi cho chủ

Biến môi trường TERM nói với chương trình terminfo-based (như tmux) những gì thoát trình tự mô phỏng thiết bị của bạn (được cho là) ​​hiểu và tạo ra. Trình tự thoát được tạo ra bởi phím Home được lưu trữ trong trường khome. Bạn có thể sử dụng tput hoặc infocmp để trích xuất giá trị của trường (cả hai sử dụng số TERM hiện tại trừ khi chúng được khai báo đầu cuối ghi đè).

tput khome | cat -v ; echo 
infocmp -1 | grep -F khome 

Sửa một tạo/Dự kiến ​​không phù hợp

Nếu dãy thoát được tạo ra bởi mô phỏng thiết bị của bạn không phù hợp với mục khome cho tuyên bố TERM giá trị của bạn, sau đó có một vài điều mà có thể được thực hiện để thử để khắc phục sự cố:

  1. Định cấu hình trình mô phỏng thiết bị đầu cuối của bạn.
    Điều này có thể liên quan đến việc sử dụng một chương trình khác, chọn một mô phỏng khác hoặc chỉ (lại) xác định trình tự nó sẽ gửi khi bạn bấm phím Home.
  2. Chọn giá trị TERM mới phù hợp hơn với trình mô phỏng thiết bị đầu cuối của bạn gửi và hiểu.
  3. Điều chỉnh mục nhập cơ sở dữ liệu terminfo để khớp với mô phỏng thiết bị đầu cuối của bạn.
    Bạn có thể sử dụng infocmp để trích xuất và mục nhập terminfo hiện tại và tic để biên soạn mục nhập đã sửa đổi của bạn.
  4. Giới thiệu tmux để điều chỉnh bản sao thời gian chạy của các mục nhập cơ sở dữ liệu terminfo.
    tmux cung cấp tùy chọn terminal-overrides có thể được sử dụng để ghi đè các trường thông tin cá nhân riêng lẻ cho các giá trị TERM khác nhau.

Ví dụ, nếu mô phỏng thiết bị của bạn không gửi một chuỗi cho Home, nhưng bạn có thể cấu hình một, và sự xâm nhập terminfo cho TERM của bạn không có một lĩnh vực khome, sau đó bạn có thể nói mô phỏng thiết bị của bạn để gửi ESC [1~ và sử dụng termname:khome=\033[1~ cho giá trị terminal-overrides của bạn (trong đó termname là mẫu phù hợp với giá trị TERM của bạn).

Ví dụ: trong .tmux.conf:

set-option -g terminal-overrides "xterm-color:khome=\033[1~" 

Bạn có thể sử dụng để kiểm tra tmux server-infotmux ‘s bản thời gian chạy của các mục terminfo.

Lưu ý: Như trên (với sự thay đổi prefix), cách dễ nhất để thay đổi này có hiệu lực là khởi động lại máy chủ tmux của bạn.

+0

Cảm ơn, đó là một tấn thông tin hữu ích ở đó! – secondplanet

+0

Bạn có thể giải thích kỹ hơn không? cat -v cho thấy phím End của tôi là^[[F, và tput kend cho tôi^[OF –

+0

@RosePerrone: Đối với thiết bị đầu cuối kiểu xterm, '^ [[F' là chuỗi" chế độ bình thường "cho End, và'^[OF' là trình tự "chế độ ứng dụng" cho Kết thúc; chuyển đổi giữa các chế độ này được thực hiện bằng các dãy điều khiển (thường là các chương trình tương tác hoặc toàn màn hình sẽ chuyển sang chế độ ứng dụng trong khi chúng đang hoạt động). Theo truyền thống, mục 'kend' ghi lại trình tự“ chế độ ứng dụng ”, đó là những gì bạn thấy. Nếu một mục nhập TERM có 'smkx', bạn có thể sử dụng' tput smkx' để chuyển sang chế độ "truyền trên bàn phím" của ncurses, thường là một phần lớn của "chế độ ứng dụng". –

Các vấn đề liên quan