마우스를 사용하여 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-button를 shift누릅니다.
  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.8 및 tmux 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.