현재 저는 tmux 창 사이를 이동하기 위해 CB N을 사용하고 있습니다. 여기서 N은 제가 원하는 창의 번호입니다. f1을 눌러 첫 번째 창을 활성화하고 f2를 눌러 두 번째 창을 활성화할 수 있도록 f 키를 매핑하는 방법이 있습니까?
답변1
tmux
접두사 키가 있든 없든 대부분의 키에 명령을 바인딩할 수 있습니다. [...] 또한 다음과 같은 특수 키 이름이 허용됩니다: Up, [...]F1
ToF12
, [...].
(원천:man 1 tmux
)
쉘에서 실행 tmux
:
for n in 1 2 3 4 5 6 7 8 9 10 11 12; do
tmux bind-key -T root "F$n" select-window -t "$n"
done
바인딩을 영구적으로 만들려면 .tmux.conf
양식에 12줄을 편집하고 추가하세요.
bind-key -T root F1 select-window -t 1
# up to
bind-key -T root F12 select-window -t 12
노트:
tmux
Windows가 열거되지만 키0
가 없습니다 F0. 귀하의 요청에는 창 0이 포함되어 있지 않습니다.F1..생성된 시퀀스는 F12주로 터미널 에뮬레이터와 해당 설정 등 여러 요소에 따라 달라집니다. , , , 등을 인식한다고 말할 수 있으므로 터미널 설정
tmux
을 조정 해야 합니다. 예를 들어, Windows에서 PuTTY를 통해 Debian에 연결할 때 다음을 선택해야 합니다.^[OP
^[OQ
^[OR
^[OS
^[[15~
^[OT
엑스텀 R6퍼티에설정→단말기→건반→기능 키 및 키보드. 나는 알아차렸다VT400그리고VT100+부분 작업. 반대 방향으로 조정할 수 있는지는 모르겠습니다(예:tmux
터미널에 맞게 조정).일부 프로그램은 고유한 목적으로 기능 키를 사용하므로 사용자가
tmux
그렇게 하기를 원할 수도 있습니다. 이 예제 스니펫은 및 에서 만들고 작동.tmux.conf
합니다 .F1F2mc
vim
# Using function keys to select windows, except in mc or vim tmux_commands_with_function_keys="mc vim" bind-key -T root F1 \ if-shell 'echo "#{tmux_commands_with_function_keys}" | grep -q "#{pane_current_command}"' \ 'send F1' 'select-window -t 1' bind-key -T root F2 \ if-shell 'echo "#{tmux_commands_with_function_keys}" | grep -q "#{pane_current_command}"' \ 'send F2' 'select-window -t 2'