마우스를 사용하여 tmux에서 이전 복사 붙여 넣기 동작 되돌리기


111

이것은 내가 tmux에서 복사-붙여 넣기 위해 사용했던 것입니다 (마우스를 사용하면 키보드가 다르게 작동하며 내가 관심이있는 것이 아닙니다).

  1. 마우스 왼쪽 버튼을 눌러 텍스트 선택
  2. 가운데 버튼으로 텍스트 붙여 넣기

내 OS를 업그레이드했는데 새로운 tmux 버전이 생겼습니다. .tmux.conf구성 파일을 변경하지 않았습니다 .

이것은 내가 현재 버전해야 할 것입니다 tmux, 1.6(최신 crunchbang 리눅스에서 패키지 사전 제공)

  1. 마우스로 텍스트를 선택, 왼쪽 버튼을 눌러 shift
  2. 가운데 버튼으로 텍스트 붙여 넣기
  3. 터미널이 차단되고 정보 영역에 현재 창의 오른쪽 상단에 숫자가 표시됩니다 (예 : [0/24]붙여 넣은 문자 수와 관련이있을 수 있음). 이는 나에게 거의 의미가 없으며 필요 / 필요하지 않습니다 (편집 : it copy-mode여기에 자동으로 입력 된 것 같습니다 )
  4. q기능 터미널을 다시 얻으려면 키 를 눌러야 합니다.

이것은 내가 하루에 수십 번씩 무언가를하기에는 너무 번거 롭습니다. 이전 메커니즘을 다시 작동시키는 방법은 무엇입니까?


2
내 터미널 st에서 Shift+ MouseMiddle는 전통적인 동작처럼 Xselection을 붙여 넣습니다. FWIW MouseMiddle는 수정자가 없으면 아무것도하지 않습니다.
nabin-info

답변:


84

기본 복사 / 붙여 넣기 구성을 복원하려면 tmux 내에서 마우스 지원을 (적어도 일시적으로) 해제해야합니다.

prefix : set -g mouse off

prefixtmux 액세스 키는 어디에 있습니까 ( 다시 매핑하지 않는 한 기본적으로 Ctrl+ B). :명령 모드를 시작 set -g하고 매개 변수를 전역 적으로 설정합니다.

마우스 모드가 꺼지면 운영 체제에서 제공하는 표준 복사 / 붙여 넣기 기능이 예상대로 작동합니다.

다른 작업은 현재 창을 '최대화'하는 것이므로 여러 줄을 쉽게 복사 할 수 있습니다.


이전 (2.1 이전) 버전의 tmux로 작업하는 경우 대신 다음을 사용해야합니다.

prefix : set -g mode-mouse off

여기에이 모든 것을 자동화하기위한 더 자세한 정보와 몇 가지 편리한 키 바인딩이 있습니다.

http://tangledhelix.com/blog/2012/07/16/tmux-and-mouse-mode/

위에 링크 된 기사의 주요 요지는 .tmux.conf에서 발췌 한 것입니다.

# disable mouse control by default - change 'off' to 'on' to enable by default.
setw -g mode-mouse off
set-option -g mouse-resize-pane off
set-option -g mouse-select-pane off
set-option -g mouse-select-window off
# toggle mouse mode to allow mouse copy/paste
# set mouse on with prefix m
bind m \
    set -g mode-mouse on \;\
    set -g mouse-resize-pane on \;\
    set -g mouse-select-pane on \;\
    set -g mouse-select-window on \;\
    display 'Mouse: ON'
# set mouse off with prefix M
bind M \
    set -g mode-mouse off \;\
    set -g mouse-resize-pane off \;\
    set -g mouse-select-pane off \;\
    set -g mouse-select-window off \;\
    display 'Mouse: OFF'
# zoom this pane to full screen
bind + \
    new-window -d -n tmux-zoom 'clear && echo TMUX ZOOM && read' \;\
    swap-pane -s tmux-zoom.0 \;\
    select-window -t tmux-zoom
# restore this pane
bind - \
    last-window \;\
    swap-pane -s tmux-zoom.0 \;\
    kill-window -t tmux-zoom

13
tmux 1.8 이상을 사용하는 경우 현재 창의 확대 / 축소 상태를 전환하는 기본 제공 명령 Control-B z가 있습니다. 따라서 CB z는이 창을 전체 화면으로 확대하고 동일한 명령을 다시 복원합니다. 이렇게하면 위의 구성 끝에 CB + 및 CB-키 시퀀스를 정의 할 필요가 없습니다.
dr-jan

9
tmux 2.1 이상을 사용하는 경우 모든 마우스 관련 명령이 사용되지 않고 모든 것을 설정하는 '마우스'로 대체되었습니다. 따라서 기본적으로 마우스 모드를 비활성화하려면 'setw -g mouse off'를 사용하십시오. 'mode-mouse', 'mouse-resize-pane', 'mouse-select-pane'또는 'mouse-select-window'에 대한 참조를 제거하십시오.
dr-jan

50
그러나 마우스 모드 켜기에는 장점이 있습니다. 스크롤 할 수 있습니다. 일반 터미널처럼 터미널을 사용할 수있는 설정 조합이 있습니까? 복사 / 붙여 넣기 및 스크롤이 포함되어 있습니까?
Mihai Danila

1
나는 때문에에, 함께 엉망 수있는 몇 가지 다른 설정이 있습니다 OSx (Sierra), option하지 않습니다 도움. Turning을 mode-mouse off사용하면 평소처럼 선택할 수 있지만 클립 보드에 복사 할 수 없습니다 ( cmd+C또는 cmd+shift+C아무것도하지 않거나 오류 벨을 울리거나 색상 선택기를 불러

3
tmux v3를 사용하여 테스트했습니다. 하나의 바인딩으로 켜고 끕니다.bind-key -T prefix m set -g mouse\; display 'Mouse: #{?mouse,ON,OFF}'
Evgeny

248
  1. 텍스트 복사 : 텍스트를 선택하고 키를 눌러 마우스 left-buttonshift누릅니다.
  2. shift키 +로 텍스트 붙여 넣기middle-button

30
OSX 사용자의 경우이 블로그 게시물에 설명 된대로 옵션 키입니다. awhan.wordpress.com/2012/04/18/tmux-copy-paste-with-mouse
pangratz

3
실제로 Shift + LMB로 텍스트를 선택한 후 OS 기능 (제 경우에는 Ctrl-Shift-C)을 사용하여 X11이 아닌 클립 보드에 복사 할 수 있습니다.
Eugene Pankov 2015

8
OP는 키보드를 사용하지 않고 마우스로 복사하여 붙여 넣을 수 있기를 원한다고 명확하게 명시합니다. 누르기 Shift(또는 OSX의 옵션 키)는 책에서 가장 오래된 트릭이며 대부분의 에뮬레이터에서 작동하지만 원래 질문에 답하지 않습니다.
Lqueryvg

1
@pangratz 옵션 키를 사용하면 iTerm 사용자에게는 작동 할 수 있지만 기본 터미널 사용자에게는 작동하지 않을 수 있습니다.
anishpatel

이 해결 방법에 감사드립니다! 그래도 여전히 차선책입니다. 마우스 휠 = 히스토리 스크롤, 다른 모든 마우스 기능 = 보통이 훨씬 낫습니다.
Torsten Bronger

36

"set -g mode-mouse on"이면이 트릭을 수행 할 수 있습니다.

Mac에서는 "fn"버튼을 누른 다음 텍스트를 선택하고 마우스 오른쪽 버튼을 클릭하거나 키보드 cmd + c를 사용하여 복사합니다.


4
나를 위해 이것은 마우스로 스크롤하지 않는 경우에만 작동하는 것 같습니다. 마우스로 스크롤하면 더 이상 작동하지 않습니다
Paul

또한 fn+로 붙여 넣을 수 있습니다.Middle-Click
spinup

10

여기 에서 수정 - 원본 xclip대신 사용 xsel:

bind -T root MouseDown2Pane run -b "xclip -o | tmux load-buffer - && tmux paste-buffer -s ' '"

이것은 나를 위해 즐겁게 일하고 있습니다. tmux 2.5-rc2


이 터미널에 좋은 작동하지만 정력에 붙여 넣을 때 이상한 동작
Tropilio

9

사용 <prefix>+m또는 해제 마우스 모드 전환

bind m run "if [[ `tmux show-option -w | grep mode-mouse.*on` ]]; then toggle=off; else toggle=on; fi; tmux display-message \"mouse tmux: \$toggle\"; tmux set-option -w mode-mouse \$toggle &> /dev/null; for cmd in mouse-select-pane mouse-resize-pane mouse-select-window; do tmux set-option -g \$cmd \$toggle &> /dev/null; done;"

이것은 나를 위해 완벽하게 작동했습니다. 정말 고마워. 마우스 모드로 스크롤하고 싶었지만 이로 인해 텍스트 복사 기능이 깨졌습니다. 이렇게하면 마우스 모드를 비활성화하려는 경우 빠른 전환이 가능합니다.
Bijan

6
나는 사용bind m set-option mouse\; display-message "Mouse is now #{?mouse,on,off}"
Maxim Suslov

사용자는 .tmux.conf 사용자 정의가 아닌 복사 및 붙여 넣기를 원합니다!
Jack Wasey

6

Tmux 2에서 Christian의 예제를 사용하는 데 문제가있었습니다. 오타가있는 것 같습니다. 나는 아래에서 작동하고 읽기가 더 쉽고 전역 및 창 모드를 모두 설정합니다. hth 누군가. 새로운 사용자와 tmux는 훌륭합니다!

bind m run "\
    tmux show-options -g | grep -q "mouse\\s*on"; \
    if [ \$? = 0 ]; \
    then  \
        toggle=off;  \
    else  \
        toggle=on;  \
    fi;  \
    tmux display-message \"mouse is now: \$toggle\";  \
    tmux set-option -w mouse \$toggle; \
    tmux set-option -g mouse \$toggle; \
    "

1
나를 위해 작동합니다. github의 tmux HEAD에 대해 테스트되었습니다 (어제 기준).
Lqueryvg

2
이 작업을 수행하려면 show-options줄을 tmux show-options -g | grep -q "mouse\\s*on"; \ . 이 때문에 정규식 mouse.*on일치 @scroll-in-moused-over-pane "on"의 일부 플러그인 nhdaly / TMUX - 더 - 마우스 모드
맨디 Schoep

1
기본적으로 동일한 작업을 수행하는 더 간단한 바인딩bind-key -T prefix m set -g mouse\; display 'Mouse: #{?mouse,ON,OFF}'
Evgeny

6

의 사용자의 경우 맥 + iTerm2 + TMUX (버전> 2.1) :

마우스 모드가 tmux 구성에 설정되어 있는지 확인하십시오 ( set -g mode-mouse on~ / .tmux.conf에 추가하기 만하면됩니다). 이제 창 안에 텍스트를 복사하려면 :

  1. 프레스 option + command마우스 커서를 사용하여 복사하려는 텍스트를 선택하십시오. 사진을 자르는 것과 같습니다.
  2. 선택한 텍스트는 자동으로 복사됩니다 (필요 없음 command + c). 일반적인 방법으로 붙여 넣기 만하면됩니다.

5

Yves Blusseau 는 작동 방식을 파악하는 데 도움이되었지만 내 컴퓨터 ( Windows 10 실행 )에서는 동작이 약간 달랐습니다.

tmux 2.6

활성화 된 마우스 사용 ( :set -g mouse on)

  1. 누른 상태에서 Shift마우스로 복사 할 텍스트를 선택
  2. 이제 마우스 오른쪽 버튼을 클릭하여 선택한 텍스트를 복사합니다 (를 누르지 않고 Shift).

  1. Shift복사 한 텍스트를 삽입하려면 누른 상태 에서 마우스 오른쪽 버튼을 클릭하십시오.

그렇게 간단합니다. 즐겨!


최고입니다. 간단하고 우아합니다.
미약 한

3

이것은 Tmux 2.1과 호환되는 Kaixuan의 답변의 수정 된 버전입니다 .

`bind m run "if [[ `tmux show-options -w | grep mouse.*on` ]]; then toggle=off; else toggle=on; fi; tmux display-message \"mouse tmux: \$toggle\"; tmux set-option -w mouse \$toggle &> /dev/null;`"

모든 mode-mouse옵션이 하나로 결합 된 mouse옵션 show-option으로 대체되어야했다show-options


1
이것은 tmux.conf에 있다고 가정합니까? ??
Arnold Roa

1
어디로가는거야?
statquant

@ArnoldRoa @statquant : 예, 이것은 ~/.tmux.conf파일에 들어갑니다 . <prefix>+m해당 인라인 스크립트를 실행하기 위해 키를 바인딩합니다 .
inblueswithu

0

에서 ~/.tmux.conf:

set -g mouse off

가진 bind r source-file ~/.tmux.conf당신이 할 수 있도록 너무 유용 할 수있는 ctrl-d r인스턴스에 대한 설정을 다시로드 할 수 있습니다.


0

여기에 게시 된 다른 답변을 기반으로 (적어도) tmux 2.8tmux 3.1 에서 작동하는 간결한 솔루션을 만들었습니다 .

- tmux mouse support를 눌러 켜고 끌 수 있습니다 . 에서 파일이 라인을 포함한다 :prefixM.tmux.conf

bind-key -T prefix m run "m=$(tmux show -g mou|grep -q on;echo $?);tmux set -g mou $m;tmux display mouse:\$m"

mouse: 1활성화되고 mouse: 0비활성화 될 때 표시 됩니다 . prefix- M를 반복해서 누르면 마우스 모드가 켜짐꺼짐 사이 에서 전환 됩니다 .

참조 : tmux 마우스 지원

편집 : 명령 returned 1오류 메시지가 표시되면 tmux 3.1 또는 tmux 3.2 대신 다음을 사용해야합니다 .

bind-key -T prefix m set -g mouse\; display 'Mouse: #{?mouse,ON,OFF}'

(이 솔루션은 이전에 언급되었습니다)


-1

다음 바인딩을 사용하여 마우스 왼쪽 버튼을 누른 상태에서 텍스트를 선택합니다.

bind -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "/mnt/c/Windows/System32/clip.exe"
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.