마우스 복사 및 붙여넣기에 tmux를 사용하는 방법

마우스 복사 및 붙여넣기에 tmux를 사용하는 방법

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

키를 누르고 있어야 하는 것 외에도 Option고통스럽습니다. 시각적 모드로 가서 vim move를 사용하여 거기에 갈 수 있다는 것을 알고 있지만 마우스를 사용하는 방법이 더 좋습니다. 누구든지 해결책을 찾았습니까?

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

답변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 세션을 다시 시작하십시오. 마우스를 사용하여 일부 텍스트를 강조표시하되 마우스를 놓지 마십시오. 이제 텍스트가 강조 표시되어 있고 마우스를 누른 상태에서 Enter 키를 누릅니다. 강조 표시된 텍스트가 사라지고 클립보드에 복사됩니다. 이제 마우스를 놓습니다.

이 외에도 위아래로 스크롤, 활성 창 선택 등과 같은 몇 가지 멋진 작업을 마우스로 수행할 수도 있습니다.

당신이 사용하는 경우최신 버전의 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

Ubuntu 20.04에서 나에게 맞는 것은 무엇입니까?

  • 마우스 모드를 켰습니다
  • Shift커서가 있는 텍스트를 선택하려면 +를 누르세요.
  • Shift텍스트를 선택한 후 마우스를 놓습니다.
  • 텍스트 복사 Ctrl++Shiftc
  • 아무 곳에나 붙여넣기(자체 외부 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사용하려는 기계를 빠르게 식별하는 데 도움이 됩니다 :-)

관련 정보