tmux 키 바인딩을 철자하지 않고 다른 키로 이동/재바인딩

tmux 키 바인딩을 철자하지 않고 다른 키로 이동/재바인딩

tmux에는 다양한 유형의 메뉴를 생성할 수 있는 기본 키 바인딩이 많이 있습니다. 분명히 이러한 키 바인딩은 표시되는 전체 메뉴에 대한 코드를 엽니다.

bind-key    -T prefix       <                      display-menu -T "#[align=centre]#{window_index}:#{window_name}" -x W -y W "#{?#{>:#{session_windows},1},,-}Swap Left" l { swap-window -t :-1 } "#{?#{>:#{session_windows},1},,-}Swap Right" r { swap-window -t :+1 } "#{?pane_marked_set,,-}Swap Marked" s { swap-window } '' Kill X { kill-window } Respawn R { respawn-window -k } "#{?pane_marked,Unmark,Mark}" m { select-pane -m } Rename n { command-prompt -F -I "#W" { rename-window -t "#{window_id}" "%%" } } '' "New After" w { new-window -a } "New At End" W { new-window }

매우 유용하다고 생각하지만 그 중 일부를 다른 키로 이동하고 싶습니다(예: <및 을 및 >으로 이동하고 싶습니다 ). 그러나 전체 메뉴 정의를 내 구성에 복사하는 것은 업스트림이 변경되는지 전혀 알 수 없으므로 차선책인 것 같습니다.[]


내 정의를 복제하지 않고 기존 tmux 키 바인딩을 다른 키로 "이동"할 수 있는 방법이 있습니까 .tmux.conf?

답변1

tmux list-keys.tmux.conf소스로 선택한 파일 내에서 또는 내부에서 재사용할 수 있는 출력을 생성합니까(또는 적어도 생성해야 합니다) (예: use source-file).

아이디어는 에서 출력을 가져와 에 tmux list-keys -T prefix "<"전달 하고 마지막으로 에 공급하는 것입니다 ( "표준 입력에서 읽는 것"으로 해석됨). 셸에서 다음 명령을 사용하여 이 작업을 수행할 수 있습니다.sed<[tmux source-file --

tmux list-keys -T prefix "<" | sed "1 s/</[/" | tmux source-file -

.tmux.conf파이프를 설정하려면 여전히 쉘이 필요하므로 다음을 사용 하십시오 run-shell.

run-shell 'tmux list-keys -T prefix "<" | sed "1 s/</[/" | tmux source-file -'

이 경우에는 첫 번째 줄의 첫 번째 줄을 sed "1 s/</[/"변경하는 것이 좋습니다 . <그러나 키가 이면 ilike를 사용하여 에서 sed "1 s/ i / [ /"일치하는 것을 피해야 합니다 . 또는 경우에 따라 전체 구문을 검색하고 바꿔야 할 수도 있습니다. 또한 일부 문자는 정규 표현식에서 특별하다는 점을 명심하세요. 어쨌든 원하는 변경을 수행하는 명령을 작성할 수 있다면 이 접근 방식이 작동할 것입니다.ibind-key-T prefix …sed

관련 정보