나는 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-pipe
xterm 이스케이프 시퀀스를 사용하여 선택 항목도 설정되어 복사된 데이터를 tty로 보냅니다. tmux는 복사된 텍스트 전체를 올바르게 전송하지만 터미널에는 데이터를 수신하기 위한 버퍼 크기가 제한되어 있을 수 있습니다. 이것은티먹스#1119.
때로는 호출이 xclip
백그라운드에 배치되고 내장 클립보드 설정 작업 후에 완료될 수 있기 때문에 작동할 수도 있습니다. 또한 터미널을 업데이트하고 OSC 52 지원을 구현하는 경우(예:기운찬).
귀하의 옵션은 다음과 같습니다:
set-option -g set-clipboard off
tmux 구성에 추가- 가능하다면 터미널에서 더 높은 버퍼 크기 제한을 설정(또는 질문)하고
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
소용없을 것 같아요.