tmux 클립보드에서 Linux 클립보드로 복사하기 위한 별도의 명령을 어떻게 생성합니까?

tmux 클립보드에서 Linux 클립보드로 복사하기 위한 별도의 명령을 어떻게 생성합니까?

Linux의 OSX에서 작동하는 다음 바인딩을 에뮬레이트하려고 합니다.

# Copy and paste from system clipboard
bind C-c run "tmux save-buffer - | reattach-to-user-namespace pbcopy"
bind C-v run "reattach-to-user-namespace pbpaste | tmux load-buffer - && tmux paste-buffer"

즉, tmux 버퍼를 내 시스템 클립보드에 명시적으로 복사하는 명령과 다시 복사하는 다른 명령을 바인딩하고 싶습니다. 나하지 마라자동으로 vi-select를 사용하여 tmux에서 내 시스템 클립보드로 복사하려고 합니다.기존 답변주소.

나는 다음 바인딩을 (한 번에 하나씩) 시도했습니다.

bind C-c run "tmux save-buffer - | xclip -in -selection clipboard"
bind C-c run "tmux show-buffer | xclip -sel clip -i"

둘 다 처음 사용할 때는 올바른 일을 하는 것처럼 보이지만 심각한 부작용이 있습니다. 사용 후 모든 tmux 키 바인딩이 비활성화됩니다.

즉, 첫 번째 복사 이후에는 내 tmux 키 바인딩이 작동하지 않습니다.

추가 tmux 명령을 실행하는 기능을 비활성화하지 않고 tmux 클립보드에서 시스템 클립보드로 또는 그 반대로 항목을 명시적으로 복사하려면 어떻게 해야 합니까?

답변1

xclip에는 stdout을 닫지 않는 버그가 있습니다. 이는 tmux가 완료된 것을 알지 못한다는 것을 의미합니다. 이것이 처음 복사한 후에는 더 이상 tmux 명령을 실행할 수 없는 이유입니다. 따라서 다음 중 하나를 수행할 수 있습니다.

1) 동일한 문제가 발생하지 않는 xclip 대신 xsel을 사용하십시오.

2) stdout을 /dev/null다음과 같이 리디렉션합니다.xclip ... >/dev/null

3) run -b대신 사용하면 runtmux가 xclip이 완료될 때까지 기다리지 않습니다.

관련 정보