마우스 선택 후 tmux 출력에서 ​​시스템 클립 보드로 복사하는 방법은 무엇입니까?


82

이제 시스템 클립 보드에 복사하려면 Shift키로 tmux 창에서 마우스 텍스트를 선택해야합니다 . 그런 다음이 명령을 실행해야합니다.

tmux save-buffer - | reattach-to-user-namespace pbcopy

시스템 클립 보드에 더 쉽게 저장할 수 있습니까? 키 바인딩 또는 더 나은 방법은 Shift 릴리스 후 자동으로 수행합니다.

내 tmux 구성 : https://gist.github.com/3641580


다음은 unix.stackexchange 에 대한 유사한 Q & A입니다 .
crw

2
MacOS, 특히 Sierra에서 이러한 작업이 있습니까? 아니면 그들 중 누구도하지 않습니다. 누구도 무엇을할지 압니까? 이 질문은 태그되어 osx있지만 답변은 왼쪽과 가운데 클릭에 대해 얘기 ...
dwanderson

답변:


191

iTerm2를 사용하는 경우 Tmux 세션에서 Option키를 누른 상태에서 마우스를 드래그하여 텍스트를 복사 할 수 있습니다 .

그런 다음 평소처럼 Cmd+를 사용 V하여 아무 곳에 나 텍스트를 붙여 넣을 수 있습니다 . 여기에서 찾았습니다 : http://web.archive.org/web/20131226003700/http://ootput.wordpress.com/2013/08/02/copy-and-paste-in-tmux-with-mouse/


26
tmux 창에 도움이되지 않음
Jak S

41
창이있는 경우 <alt> + <cmd> + 마우스 선택을 사용하여 직사각형 선택을 할 수 있습니다.
jomuller

6
직사각형 선택은 모든 열에서 선택을 시작하고 끝낼 수 있으므로 창에 동일한 기능을 제공하지 않습니다. 이 솔루션은 tmux와 관련이 없지만 터미널 자체와 관련이 있습니다. Panes는 tmux의 핵심 기능입니다.
Betamos 2015

6
@JakS 접두사 + Z는 현재 창을 확대합니다. 그러면 그 문제가 없을 것입니다. 당신은 : Vim은 분할 안에도 아니라면
dgmora

10
터미널에서 "fn"키를 눌러 텍스트를 선택할 수 있습니다. 선택한 텍스트는 "Cmd + C"로 복사 할 수 있습니다.
fbessho

58

iTerm2 3.x를 사용하는 경우 다음을 활성화하여 복사 / 붙여 넣기 작업을 할 수 있습니다 Applications in terminal may access clipboard.

여기에 이미지 설명 입력

마우스로 텍스트를 강조 표시하기 만하면 OS X 클립 보드에 복사됩니다! Option수락 자 답변에서 제안한대로 누를 필요가 없습니다 .

일반적인 Cmd+ 를 사용하여 OS X 클립 보드에서 tmux로 붙여 넣을 수도 있습니다 V.


1
모든 reattach-to-user-namespace기반 접근 방식은 저에게 적합하지 않습니다. 왜냐하면 저는 종종 Linux 시스템에 ssh를 사용하기 때문입니다. 그러나이 솔루션은 훌륭하게 작동합니다! 감사합니다!

훌륭한 답변입니다. 나는 vim에있을 때 여전히 <kbd> Option </ kbd>를 사용하고 마우스가 vim 선택을 활성화하는 것을 원하지 않습니다.
차드 Skeeters

이것은 아름답게 작동했습니다. 구성을 변경할 필요가 없습니다. 감사.
muammar

이것은 tmux에서만 잘 작동하지만 이제 해당 tmux 내에서 실행되는 vim yanks를 iterm 및 시스템 클립 보드로 보내는 방법은 무엇입니까 ??
schlow

@schlow 이것은 아마도 별도의 Vim + tmux StackOverflow 질문 일 것입니다.하지만 저는 Vim도 사용하게되었고 set clipboard=unnamed그 목적으로 제 vimrc에 추가 했습니다
Jerome Dalbert 19

28

여기에 비슷한 질문에 대한 답변이 있습니다 : /unix/15715/getting-tmux-to-copy-a-buffer-to-the-clipboard

해결책은 다음과 같습니다.

# 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 show-buffer | xclip -i"

또한 확인 : http://awhan.wordpress.com/2012/04/18/tmux-copy-paste-with-mouse/

다음 옵션을 설정 한 경우 :

마우스 선택 창

마우스 선택 창

텍스트를 전혀 선택할 수 없음을 알 수 있습니다.

해결책은 Shift 키를 사용하는 것입니다.

hold down the shift key and then left click and drag across the target text. you must also hold down the shift key and then middle click in order to paste the text.

4
iterm에서는 shift 키 대신 옵션 키를 사용하십시오. [여기에 언급 된대로 : awhan.wordpress.com/2012/04/18/tmux-copy-paste-with-mouse ]
gatoatigrado

2
MacOS의 경우 xclip -o=> pbpaste, xclip -i=> pbcopy.
Gingi

23

OS x의 경우 앱 "터미널"을 사용하는 경우. 마우스 스크롤을 끄고 일반적인 복사 / 붙여 넣기 기능 (cmd + c / cmd + v)을 사용할 수 있습니다.

set-option -g mouse-select-pane off
set-option -g mouse-resize-pane off
set-option -g mouse-select-window off
set-window-option -g mode-mouse off

또는 마우스 스크롤을 사용하고 "fn 키"를 사용하여 텍스트를 선택할 수 있습니다.

set-window-option -g mode-mouse on

16
fn키 팁은 생명의 은인입니다! 많은 사람들이 사용하는 것이 좋습니다 ALT하지만 맥 OS는 X 최신 작동하지 않습니다
AK_

1
더 나은 방법 -fn옵션 을 결합 하여 열 모드를 사용하여 선택하십시오!
Fletch

fn 키를 변경하는 방법이 있습니까? fn 키가없는 외부 키보드 사용!
CentAu

@CentAu 대신 "Window"키를 사용해보십시오
Piotrek Zatorski

17

tmux 버전 2.2 이상을 사용하는 OSX에서 tmux.conf 파일에 다음을 추가하십시오.

bind-key -t emacs-copy MouseDragEnd1Pane copy-pipe "pbcopy"
bind-key -t vi-copy MouseDragEnd1Pane copy-pipe "pbcopy"

tmux 버전 2.4의 경우 명령 구문을 변경하기로 결정 했으므로 다음을 사용해야합니다.

bind-key -T copy-mode MouseDragEnd1Pane send -X copy-pipe-and-cancel "pbcopy"

reattach-to-user-namespace pbcopyplain 대신 사용해야 할 수도 있습니다 pbcopy.


또한 Ubuntu 16.04에서는 tmux 2.1에서 더 이상 문제가되지 않습니다. 터미널의 기본 복사 붙여 넣기 방법을 사용할 수 있습니다.
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功

이것이 왜 목록에서 그렇게 낮은 지 모르겠습니다. 이것이 정답입니다!
shawkinaw

11

이것을 ~ / .tmux.conf 파일에 넣으면 저에게 효과적입니다.

bind y run-shell "reattach-to-user-namespace -l zsh -c 'tmux show-buffer | pbcopy'"

내가 찾은 다른 모든 잠재적 솔루션은 일종의 빈 콘텐츠를 OSX 클립 보드에 복사하는 것이 었습니다.

유일한 문제는 이것이 붙여 넣은 내용의 끝에 캐리지 리턴을 넣는 것처럼 보인다는 것입니다.


3
이것은 작동하지만 선택을 한 후에도 여전히 PREFIX + y를 눌러야합니다. Linux 터미널 에서처럼 선택하는 것만으로 OS X의 tmux 세션에서 텍스트를 복사하는 방법이 있습니까?
Rafael Bugajewski 2015 년

6

마우스 왼쪽 버튼을 누른 상태에서 창에서 텍스트를 선택하고 버튼을 계속 누르고 있습니다. 그런 다음 "y"를 누르면 선택 사항이 클립 보드에 저장되고 선택 / 복사 모드에서 빠져 나갑니다.

iTerm 3.1.beta.5, tmux 2.5 및 다음 구성에서 작동합니다.

### copy & paste -------------------------------------------------------
# Use vim keybindings in copy mode
setw -g mode-keys vi
# Setup 'v' to begin selection as in Vim
bind-key -T copy-mode-vi v send -X begin-selection
bind-key -T copy-mode-vi y send -X copy-pipe-and-cancel "reattach-to-user-namespace pbcopy"
# Update default binding of `Enter` to also use copy-pipe
unbind -T copy-mode-vi Enter
bind-key -T copy-mode-vi Enter send -X copy-pipe-and-cancel "reattach-to-user-namespace pbcopy"

+1 마지막으로 작동하는 최신 솔루션입니다. 감사. -사전없이 Enter 만 무시해도 괜찮을 것 같습니다 unbind.
ThomasH

Tmux 버전 3 이상은 copy-mode-vi이전 버전이 copy-mode.
MutantMahesh


3

macOS High Sierra 앱의 창에서 + 로 텍스트를 선택한 후 CMD+ 로이 문제를 해결할 수있었습니다 .CFNmouse drag with left button downtmuxTerminal


1

오늘은 netcat을 사용하여 매우 간단한 버전을 만들었습니다.

https://github.com/base698/tmux-copy-paste-mac-osx

다음은 tmux.conf입니다.

bind -t vi-copy 'v' begin-selection
bind -t vi-copy 'y' copy-pipe 'nc localhost 5682'
bind p run-shell 'nc localhost 5683; nc localhost 5683 | tmux load-buffer -' \; paste-buffer

1.8에서 마우스로도 작동


1

다음은 tmux버전 2.8, macOS Mojave 10.14.1 및 Terminal.app에 사용중인 솔루션 입니다.

마우스 버튼을 놓으면 시스템 클립 보드 (및 tmux버퍼)에 복사하는 동안 선택 항목이 제거됩니다 .

bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "pbcopy"

0

mosh + tmux + vim + 중첩 세션의 모든 조합에서 작동하는 강력한 솔루션

이 문제를 해결하는 데 며칠을 보낸 후 지금까지 발견 한 가장 강력한 솔루션은 Suraj N. Kurapati의 게시 된 솔루션 입니다. 이 솔루션은 tmux v3.2 및 / 또는 vim을 사용하거나 사용하지 않고 로컬에서 작동 할뿐만 아니라 복사 모드 키와 간단한 마우스 선택을 사용하여 tmux 및 / 또는 vim 을 사용 하거나 사용 하지 않고 원격으로 작동합니다.

Mike Gulick의 (현재 열려있는) pull request 와 결합하면 이러한 모든 조합이 mosh 에서도 작동 합니다.

Mike의 솔루션이 mosh에 병합 될 때까지 다음을 사용하여 그의 변경 사항을 가져와 로컬에서 빌드 할 수 있습니다.

Ubuntu :

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key C99B11DEB97541F0 \
&& sudo apt-add-repository https://cli.github.com/packages \
&& sudo apt update \
&& sudo apt install -y gh autoconf automake perl protobuf-compiler libprotobuf-dev libncurses-dev zlib1g-dev libutempter-dev libssl-dev pkg-config \
&& mkdir -p ~/tmp/mosh \
&& git clone https://github.com/mobile-shell/mosh ~/tmp/mosh \
&& cd ~/tmp/mosh \
&& gh pr checkout 1104 \
&& ./autogen.sh \
&& ./configure \
&& make \
&& sudo make install

맥 OS:

먼저 Apple의 Xcode / 개발자 명령 줄 도구 (IIRC, 이제 간단히 실행 gcc하고 종료 하여 수행 할 수 있음 )를 설치 한 다음 실행 해야한다고 생각합니다 .

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" \
&& brew install gh autoconf automake
&& mkdir -p ~/tmp/mosh \
&& git clone https://github.com/mobile-shell/mosh ~/tmp/mosh \
&& cd ~/tmp/mosh \
&& gh pr checkout 1104 \
&& ./autogen.sh \
&& ./configure \
&& make \
&& sudo make install

이 업데이트를 통해 마침내 클립 보드 성배가 완성되었습니다!

그러나 이것은 매우 새로운 정보이므로이 게시물은 다소 불안정합니다. 따라서:

다음과 같은 경우 내 게시물을 친절하게 수정하십시오.

  1. 종속성 등이 누락되었습니다.
  2. 공연 gh pr checkout 1104마이크의 변화에 더 이상이 MOSH에 통합되어 있기 때문에 필요하지, 또는
  3. 병합 된 변경 사항이 brew / apt / etc 패키지 관리자에 푸시 되었기 때문에 소스에서 빌드 할 필요가 없습니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.