저는 tmux 버퍼의 내용을 클립보드에 복사하는 좋은 방법을 찾으려고 노력 중입니다. 나는 다음과 같은 몇 가지 다른 것을 시도했습니다.
bind-key p select-pane -t 2 \; split-window 'xsel -i -b' \; paste-buffer
이로 인해 꽤 가까워졌습니다. 내가 해야 할 일은 prefix-p를 수행한 후 Ctrl-d를 누르는 것뿐이었습니다.
나는이 문제를 해결하려고 노력했습니다.
bind-key p select-pane -t 2 \; split-window 'xsel -i -b << HERE\; tmux paste-buffer\; echo HERE'
그러나 이것은 작동하지 않습니다. 사실 페어링을 해보면
bind-key p select-pane -t 2 \; split-window 'xsel -i -b << HERE'
아무것도 하지 않으므로 분할 창은 쉘 명령에서 <<를 좋아하지 않는다고 가정합니다.
어떤 아이디어가 있나요?
편집: 원한다면 건너뛸 수 있지만 select-pane -t 2
상관없습니다. 나는 특정 레이아웃만 사용하고, 창 2는 다른 작업을 수행할 때 분할하는 것을 선호하므로 기본적으로 분할과 관련된 바인딩으로 이동합니다.
답변1
이것은 작동합니다:
# move x clipboard into tmux paste buffer
bind C-p run "tmux set-buffer \"$(xclip -o)\"; tmux paste-buffer"
# move tmux copy buffer into x clipboard
bind C-y run "tmux save-buffer - | xclip -i"
답변2
이 copy-pipe
명령은 버전 1.8부터 추가되었습니다. 선택 항목을 tmux 버퍼에 복사하고 이를 명령에 파이프합니다. 이제 접두사 바인딩이 필요하지 않습니다. 예는 다음과 같습니다.
bind -t vi-copy y copy-pipe "xclip"
# For OS X users:
bind -t vi-copy y copy-pipe "reattach-to-user-namespace pbcopy"
copy-mode
이제 에서 일부 텍스트를 선택하면 y해당 텍스트가 운영 체제 클립보드뿐만 아니라 tmux 버퍼에도 복사됩니다. 그러나 클립보드에서 tmux 버퍼로 텍스트를 가져오려는 경우에는 도움이 되지 않습니다.
답변3
Mac OS-X를 위한 더 간단한 솔루션
이것은 Alex의 답변을 기반으로 하며 당시에는 존재하지 않았던 것을 사용합니다.
당신이 사용하는 경우집에서 만든(그렇지 않다면 왜 안 됩니까?) 그러면 다음과 같이 할 수 있습니다.
brew install reattach-to-user-namespace
그런 다음 ~/.tmux.conf
:
set-option -g default-command "reattach-to-user-namespace -l zsh" # or bash...
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(tmux를 사용하여 무언가를 복사했어야 함)에서 Mac 페이스트보드로 <tmux-key> Control-c
Now available for Command-v
또는를 사용합니다.pbpaste
Mac 클립보드의 콘텐츠를 붙여넣으려면 를 사용하세요 <tmux-key> Control-v
.
답변4
당신은 시도하고 싶을 수도 있습니다tmux-yank 플러그인. 시스템 클립보드(OS X 및 Linux)에 직접 복사할 수 있을 뿐만 아니라 현재 셸 라인을 가져오는 등의 다른 이점도 있습니다.