~에서티먹스 매뉴얼
- Choose mode, which allows an item to be chosen from a list. This may be a client, a session or window or pane, or a buffer. This mode is entered with the choose-buffer, choose-client and choose-tree commands.
choose-tree
명령을 살펴보면 다음과 같습니다 .
The following keys may be used in tree mode:
Key Function
Enter Choose selected item
Up Select previous item
Down Select next item
+ Expand selected item
- Collapse selected item
M-+ Expand all items
M-- Collapse all items
x Kill selected item
X Kill tagged items
< Scroll list of previews left
> Scroll list of previews right
C-s Search by name
m Set the marked pane
M Clear the marked pane
n Repeat last search
t Toggle if item is tagged
T Tag no items
C-t Tag all items
: Run a command for each tagged item
f Enter a format to filter items
H Jump to the starting pane
O Change sort field
r Reverse sort order
v Toggle preview
q Exit mode
특히 지금 처럼 C-c
에 바인딩하고 싶습니다 .Exit mode
q
복사 모드, 복사 모드-vi 및 루트와 달리 이 소위 "선택 모드"에는 키탭이 없습니다. 그렇다면 이것이 가능합니까?
답변1
특히 지금 처럼
C-c
에 바인딩하고 싶습니다 .Exit mode
q
특정 스키마( copy-mode
* 제외) 에서는 root
키 테이블과 스키마별 키(질문에서 인용한 것과 같은)가 관련되어 있는 것으로 보이지만 root
키 테이블이 먼저 적용됩니다.
즉 , root
키 테이블을 스키마에 있을 때로 변환 C-c
하면 스키마는 + q
에 Ctrl반응 c한 것처럼 반응합니다 q.
C-c
조건부 로 변환할 수 있습니다 q
. 이것은 다음과 같습니다 ~/.tmux.conf
.
bind-key -T root C-c if-shell -F '#{==:#{pane_mode},tree-mode}' 'send-keys q' 'send-keys C-c'
이 파일은 tmux 서버가 시작될 때 구문 분석된다는 점을 기억하세요. 이미 실행 중인 서버에 영향을 미치려면 명령을 tmux에 전달하거나(예: tmux bind-key …
tmux 내의 셸에서) 변경된 파일( prefix:source-file ~/.tmux.conf
Enter)을 다시 로드해야 합니다.
Ctrl+ c, 바인딩은 현재 창이 tree-mode
( -F '#{==:#{pane_mode},tree-mode}'
)에 있는지 여부를 감지합니다. 그렇다면 q
( )를 보내고, 그렇지 않으면 해당 모드에 있지 않을 때 +의 기능을 잃고 싶지 않기 때문에 ( )를 send-keys q
보냅니다 .C-c
send-keys C-c
Ctrlc
다른 패턴의 공식 이름을 알기 위해 다음과 같이 할 수 있습니다:
- 창의 셸에서
echo "$TMUX_PANE"
출력이 이라고 가정해 보겠습니다%0
. - 창을 원하는 모드로 설정합니다.
- 셸의 다른 창에서는 1단계의 출력이
tmux display-message -t %0 -p '#{pane_mode}'
어디에 있는지 호출합니다.%0
나는 view-mode
, tree-mode
, client-mode
, buffer-mode
및 ( 귀하의 질문의 맥락에서 두드러집니다. 각주* 참조)를 확인했습니다 options-mode
. 다른 사람들도 있을 수 있습니다.clock-mode
copy-mode
여러 패턴을 감지하려면 몇 가지 논리가 필요합니다. 예:
bind-key -T root C-c if-shell -F '#{m/r:(tree|client|buffer)-mode,#{pane_mode}}' 'send-keys q' 'send-keys C-c'
C-c
모든 모드* 로 변환하려면 q
다음 줄을 사용하면 됩니다.
bind-key -T root C-c if-shell -F '#{pane_in_mode}' 'send-keys q' 'send-keys C-c'
copy-mode
* 키 테이블 root
( ) 에는 중요하지 않은 것 같습니다 -T root
. 아시다시피 copy-mode
복제 모드에서는 별도의 테이블(또는)이 사용됩니다.copy-mode-vi