tmux 복사 파이프 자르기 선택

tmux 복사 파이프 자르기 선택

나는 tmux 복사 파이프가 선택 항목을 자르는 것을 확인했습니다(선택 항목의 마지막 부분을 생략함).

예를 들어:

bind-key -T copy-mode-vi y send-keys -X copy-pipe "xclip -in -sel clipboard"

때로는 처음 몇 100바이트만 버퍼에 복사됩니다.

xclip이런 일도 일어났기 때문에 이것이 문제가 된다고 생각하지 않습니다 xsel.

어떤 이유로 파일에 파이핑하고 잠자기 한 다음 xclip으로 전달하면 작동합니다.

bind-key -T copy-mode-vi y \
  send-keys -X copy-pipe "cat > /tmp/tmux_clip.txt" \; \
  run "sleep 0.1" \; \
  run -b "xclip -in -sel clipboard /tmp/tmux_clip.txt > /dev/null" \; \
  display "Clipboard Copy"

이것이 알려진 문제입니까? 이 문제를 해결할 방법이 있나요?

답변1

set-clipboard옵션을 on또는 external(기본값)로 설정하고 터미널이 OSC 52를 지원하는 경우 copy-pipexterm 이스케이프 시퀀스를 사용하여 선택 항목도 설정되어 복사된 데이터를 tty로 보냅니다. tmux는 복사된 텍스트 전체를 올바르게 전송하지만 터미널에는 데이터를 수신하기 위한 버퍼 크기가 제한되어 있을 수 있습니다. 이것은티먹스#1119.

때로는 호출이 xclip백그라운드에 배치되고 내장 클립보드 설정 작업 후에 완료될 수 있기 때문에 작동할 수도 있습니다. 또한 터미널을 업데이트하고 OSC 52 지원을 구현하는 경우(예:기운찬).

귀하의 옵션은 다음과 같습니다:

  • set-option -g set-clipboard offtmux 구성에 추가
  • 가능하다면 터미널에서 더 높은 버퍼 크기 제한을 설정(또는 질문)하고 copy-pipe완전히 포기하세요.

키워드: tmux 클립보드가 잘립니다. tmux가 모든 문자를 복사하지 않습니다. tmux 복사본이 잘립니다.

답변2

나는 같은 문제를보기 시작했지만 이유에 대한 좋은 설명은 없습니다. 그러나 tmux >= 2.5에 대해 제안된 솔루션은 다음을 초과합니다.https://unix.stackexchange.com/a/131187/44909나를 위해이 문제를 해결했습니다. 구체적으로 다음을 .tmux.conf수행합니다.

bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel 'xclip -in -selection clipboard'

이게 -and-cancel좀 효과가 있는 것 같더라구요. 그냥 사용하면 copy-pipe소용없을 것 같아요.

관련 정보