tmux를 사용하여 마우스로 복사하여 붙여넣는 방법

tmux를 사용하여 마우스로 복사하여 붙여넣는 방법

저는 tmuxOSX를 사용하고 있습니다. 터미널에서 복사하여 붙여넣을 때 텍스트를 tmux길게 눌러 선택할 수 있습니다 Option. 그러나 텍스트를 창 안에 머물게 할 수는 없습니다. 따라서 텍스트를 복사하려면 아래와 같이 창을 맨 왼쪽으로 순환하거나 창을 확대/축소해야 합니다.

키 를 누르고 있어야 한다는 점 외에도 Option고통스럽습니다. 시각적 모드로 들어가서 vim 움직임을 사용하여 거기에 갈 수 있다는 것을 알고 있지만 마우스를 사용하는 방법이 더 좋습니다. 이에 대한 해결 방법을 찾은 사람이 있나요?

여기에 이미지 설명을 입력하세요 여기에 이미지 설명을 입력하세요

답변1

이 코드 블록을 ~/.tmux.conf. 이렇게 하면 확대/축소할 필요 없이 마우스로 창에서 복사할 수 있는 마우스 통합이 가능해집니다.

set -g mouse on
bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'select-pane -t=; copy-mode -e; send-keys -M'"
bind -n WheelDownPane select-pane -t= \; send-keys -M
bind -n C-WheelUpPane select-pane -t= \; copy-mode -e \; send-keys -M
bind -t vi-copy    C-WheelUpPane   halfpage-up
bind -t vi-copy    C-WheelDownPane halfpage-down
bind -t emacs-copy C-WheelUpPane   halfpage-up
bind -t emacs-copy C-WheelDownPane halfpage-down

# To copy, drag to highlight text in yellow, press Enter and then release mouse
# Use vim keybindings in copy mode
setw -g mode-keys vi
# Update default binding of `Enter` to also use copy-pipe
unbind -t vi-copy Enter
bind-key -t vi-copy Enter copy-pipe "pbcopy"

그런 다음 tmux 세션을 다시 시작하세요. 마우스로 일부 텍스트를 강조 표시하되 마우스를 놓지 마십시오. 이제 텍스트가 여전히 강조 표시되어 있고 마우스를 누른 상태에서 Return 키를 누르십시오. 강조 표시된 텍스트가 사라지고 클립보드에 복사됩니다. 이제 마우스를 놓습니다.

이 외에도 위아래로 스크롤하고 활성 창을 선택하는 등 마우스를 사용하여 수행할 수 있는 몇 가지 멋진 작업도 있습니다.

당신이 사용하는 경우최신 버전의 tmuxmacOS에서는 위의 방법 대신 다음을 시도해 보세요.

# macOS only
set -g mouse on
bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'select-pane -t=; copy-mode -e; send-keys -M'"
bind -n WheelDownPane select-pane -t= \; send-keys -M
bind -n C-WheelUpPane select-pane -t= \; copy-mode -e \; send-keys -M
bind -T copy-mode-vi    C-WheelUpPane   send-keys -X halfpage-up
bind -T copy-mode-vi    C-WheelDownPane send-keys -X halfpage-down
bind -T copy-mode-emacs C-WheelUpPane   send-keys -X halfpage-up
bind -T copy-mode-emacs C-WheelDownPane send-keys -X halfpage-down

# To copy, left click and drag to highlight text in yellow, 
# once you release left click yellow text will disappear and will automatically be available in clibboard
# # Use vim keybindings in copy mode
setw -g mode-keys vi
# Update default binding of `Enter` to also use copy-pipe
unbind -T copy-mode-vi Enter
bind-key -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel "pbcopy"
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "pbcopy"

macOS에서 iTerm을 사용하는 경우 iTerm2 > 기본 설정 > "일반" 탭으로 이동하고 "선택" 섹션에서 "터미널의 응용 프로그램이 클립보드에 액세스할 수 있음"을 선택하세요.

그리고 만약 당신이 사용하고 있다면리눅스최신 버전의 tmux를 설치한 다음

# Linux only
set -g mouse on
bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'select-pane -t=; copy-mode -e; send-keys -M'"
bind -n WheelDownPane select-pane -t= \; send-keys -M
bind -n C-WheelUpPane select-pane -t= \; copy-mode -e \; send-keys -M
bind -T copy-mode-vi    C-WheelUpPane   send-keys -X halfpage-up
bind -T copy-mode-vi    C-WheelDownPane send-keys -X halfpage-down
bind -T copy-mode-emacs C-WheelUpPane   send-keys -X halfpage-up
bind -T copy-mode-emacs C-WheelDownPane send-keys -X halfpage-down

# To copy, left click and drag to highlight text in yellow, 
# once you release left click yellow text will disappear and will automatically be available in clibboard
# # Use vim keybindings in copy mode
setw -g mode-keys vi
# Update default binding of `Enter` to also use copy-pipe
unbind -T copy-mode-vi Enter
bind-key -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel "xclip -selection c"
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "xclip -in -selection clipboard"

Debian 및 Debian 기반 배포판(Ubuntu, Kali)에서는 다음을 설치해야 할 수도 있습니다 xclip.

sudo apt-get install -y xclip

(체크아웃할 수도 있습니다.https://github.com/gpakosz/.tmux다른 많은 tmux 옵션의 경우.)

답변2

~/.tmux.conf에 이 두 줄을 추가하세요.

set -g @plugin 'tmux-plugins/tmux-yank'
set -g mouse on

그런 다음 플러그인을 설치하면 나에게 적합합니다.

https://github.com/tmux-plugins/tmux-yank

답변3

우분투 20.04에서 나에게 도움이 된 것

  • 마우스 모드가 켜져 있어요
  • +를 누른 상태에서 텍스트를 선택했습니다 Shift. 커서로 선택
  • Shift텍스트를 선택한 후 마우스 를 놓고 마우스를 놓습니다.
  • 텍스트 복사 Ctrl+ Shift+c
  • 시스템 클립보드의 텍스트를 복사하므로 원하는 위치(자체 외부 tmux) Ctrl+ 를 붙여넣습니다.v

답변4

FreeBSD에서는 y키(vi 스타일)를 사용하여 선택한 텍스트를 마우스 왼쪽 버튼으로 누른 상태에서 선택한 텍스트를 복사할 mouse on수 있습니다 ~/tmux.conf. :-)

set -g mouse on
bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel 'xclip -in -selection clipboard'

:-) xclip를 사용하여 (루트로) 패키지를 설치하는 것을 잊지 마십시오 .pkg install xclip

좀 더 유용한 힌트:

  • set -g repeat-time 0한 창에 편집기가 있고 다른 창에 셸 또는 기타 커서로 작동되는 응용 프로그램이 있는 경우 다음 tmux 명령 키를 사용하지 않도록 설정합니다 . 일반적으로 다음 커서 키는 한동안 창 사이를 전환하며 전환한 창에서 커서를 빠르게 사용하려는 경우 주의가 산만해지고 짜증날 수 있습니다.
  • set -g status-style fg=white,bg=green서로 다른 원격 시스템의 서로 다른 세션을 쉽게 구별하는 데 사용합니다 . 기계마다 다른 값을 설정하면 bg작업하려는 기계를 빠르게 식별하는 데 도움이 됩니다. :-)

관련 정보