tmux에서 "스냅백"을 구현하는 방법이 있나요?

tmux에서 "스냅백"을 구현하는 방법이 있나요?

tmux스크롤백에서 새 명령(문자와 같지만 인쇄 가능한 문자도 모두 작동함)을 입력하기 시작하면 롤백이 종료되고 해당 문자가 세션에 전달되도록 구성할 수 있습니까 ? PuTTY의 "키 누를 때 스크롤 재설정" 옵션이나 다른 터미널의 유사한 옵션과 같습니다.

답변1

답을 찾았습니다. 아마최고대답하지만 작동합니다. 비결은 copy-mode테이블의 수정되지 않은 모든 키를 1) 복사 모드 취소 및 2) 자신을 세션으로 보내는 것입니다. 그래서 tmux.conf:

bind-key -T copy-mode a send-keys -X cancel \; send-keys a
bind-key -T copy-mode b send-keys -X cancel \; send-keys b
bind-key -T copy-mode c send-keys -X cancel \; send-keys c
bind-key -T copy-mode d send-keys -X cancel \; send-keys d
bind-key -T copy-mode e send-keys -X cancel \; send-keys e
bind-key -T copy-mode f send-keys -X cancel \; send-keys f
bind-key -T copy-mode g send-keys -X cancel \; send-keys g
bind-key -T copy-mode h send-keys -X cancel \; send-keys h
bind-key -T copy-mode i send-keys -X cancel \; send-keys i
bind-key -T copy-mode j send-keys -X cancel \; send-keys j
bind-key -T copy-mode k send-keys -X cancel \; send-keys k
bind-key -T copy-mode l send-keys -X cancel \; send-keys l
bind-key -T copy-mode m send-keys -X cancel \; send-keys m
bind-key -T copy-mode n send-keys -X cancel \; send-keys n
bind-key -T copy-mode o send-keys -X cancel \; send-keys o
bind-key -T copy-mode p send-keys -X cancel \; send-keys p
bind-key -T copy-mode q send-keys -X cancel \; send-keys q
bind-key -T copy-mode r send-keys -X cancel \; send-keys r
bind-key -T copy-mode s send-keys -X cancel \; send-keys s
bind-key -T copy-mode t send-keys -X cancel \; send-keys t
bind-key -T copy-mode u send-keys -X cancel \; send-keys u
bind-key -T copy-mode v send-keys -X cancel \; send-keys v
bind-key -T copy-mode w send-keys -X cancel \; send-keys w
bind-key -T copy-mode x send-keys -X cancel \; send-keys x
bind-key -T copy-mode y send-keys -X cancel \; send-keys y
bind-key -T copy-mode z send-keys -X cancel \; send-keys z

등. 대문자/소문자 변형을 포함하여 각 키를 개별적으로 매핑해야 합니다.

snapback.py다음 줄을 모두 작성하기 위해 Python 스크립트( )를 작성했습니다 .

import string

for c in string.printable:
    if ord(c) > 31:     # printable contains control chars we don't want
        c = repr(c).replace(r"\\", "\\").replace(r";", r"\;")
        print('bind-key -T copy-mode', c,
              'send-keys -X cancel \; send-keys', c.replace(";", r"\;"))

용법:

python snapback.py >> ~/.tmux.conf

관련 정보