macOS의 iTerm2에서 마우스로 tmux에서 텍스트를 선택하면 선택한 텍스트가 클립보드에 복사됩니다. 추가 버튼을 클릭할 필요가 없었습니다. 원하는 텍스트만 선택하면 작업이 완료됩니다.
macOS의 Terminal.app에서 tmux를 테스트했지만 작동하지 않습니다. y
선택 항목을 클립보드에 복사하려면 클릭해야 합니다.
나는 마우스 바인딩(그것과 유사 MouseOnSelection
) 이 있다고 생각 MouseDown1Pane
하지만 웹과 주변에서는 유용한 것을 찾을 수 없습니다 man tmux
.
Ubuntu 16.10(바람직하게는 Gnome Terminal)에서 유사한 동작을 달성할 수 있는 방법이 있는지 궁금합니다.
답변1
Tmux 2.4+는 vi 복사 모드에 바인딩되어 있으며클립:
set-option -g mouse on
set-option -s set-clipboard off
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "xclip -selection clipboard -i"
이전 tmux 버전, emacs 복사 모드 바인딩(기본값) 또는 X가 아닌 플랫폼(예: xclip 없음)의 경우 아래 지침을 참조하세요.
지침: 먼저 tmux가 마우스를 캡처하고 마우스 이벤트를 바인딩할 수 있도록 마우스 옵션을 활성화해야 합니다.
set-option -g mouse on
set-clipboard
Gnome-terminal은 xterm 이스케이프 시퀀스를 사용한 클립보드 설정을 지원하지 않으므로 해당 옵션이 꺼져 있는지 확인해야 합니다 :
set-option -s set-clipboard off
이 옵션은 iTerm2에서 기본적으로 지원되고 활성화됩니다( set-clipboard
tmux 매뉴얼 참조). 여기서 동작을 설명합니다.
그런 다음 MouseDragEnd1Pane
복사 모드 "키"(즉, 창에서 클릭하고 드래그한 후 첫 번째 마우스 버튼을 놓을 때)를 현재 복사 모드 선택(기본 바인딩에 의해 수행됨 MouseDrag1Pane
)을 가져오는 tmux 명령에 바인딩하고 이를 쉘 명령. 이 tmux 명령은 copy-pipe
tmux 2.4 이전이며 그 이후로는변경됨도착하다 send-keys -X copy-pipe[-and-cancel]
. 쉘 명령의 경우 시스템 클립보드의 내용을 파이프로 연결되는 내용으로 설정하기 위한 무언가가 필요합니다. 다음 명령에서는 xclip을 사용하여 이 작업을 수행합니다. "xclip -selection clipboard -i"
X가 아닌 플랫폼에서 다음과 동등한 몇 가지 대안은 다음과 같습니다."wl-copy"
(Wayland), "pbcopy"
(macOS), "clip.exe"
(Windows, WSL) 및 "cat /dev/clipboard"
(Cygwin, MinGW).
티먹스 2.4+:
# For vi copy mode bindings
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "xclip -selection clipboard -i"
# For emacs copy mode bindings
bind-key -T copy-mode MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "xclip -selection clipboard -i"
Tmux 2.2~2.4:
# For vi copy mode bindings
bind-key -t vi-copy MouseDragEnd1Pane copy-pipe "xclip -selection clipboard -i"
# For emacs copy mode bindings
bind-key -t emacs-copy MouseDragEnd1Pane copy-pipe "xclip -selection clipboard -i"
tmux 2.2 이전:
mode-mouse
마우스 끌기 지원 후 복사는 원래 새 옵션을 로 설정하여 Tmux 1.3에 추가되었습니다 on
. Tmux 2.1은 마우스 지원을 익숙한 마우스 키 바인딩으로 변경하지만 DragEnd
2.2에 도입된 바인딩은 없습니다. 따라서 2.2 이전에는 마우스 드래그 시 시스템 클립보드를 설정하는 유일한 방법은 내장된 xterm 이스케이프 시퀀스(옵션 set-clipboard
)를 사용하는 것이라고 생각합니다. 이는 지원되지 않는 터미널 set-clipboard
(예: GNOME 터미널) 에 대한 끌어서 놓기 동작을 얻으려면 최소한 tmux 2.2로 업데이트해야 함을 의미합니다 .
답변2
또 다른 확장은 키 사용에 관한 것입니다 Shift
.
Shift
마우스로 텍스트를 선택하는 동안 길게 누르세요. 이제 표준 오른쪽 클릭 메뉴(길게 누르거나 다시 누르기)가 표시되며 및 를 사용하여 복사하여 붙여넣을 Shift
수 있습니다 . 복사된 텍스트는 다음에서도 찾을 수 있습니다.Ctrl+Shift+C
Ctrl+Shift+V
시스템 클립보드.
Ubuntu 18.04.1
로 테스트하세요 tmux 2.6
.
원천:https://forum.upcase.com/t/tmux-ctrl-shift-c-and-ctrl-shift-v-bindings/1208.
답변3
허용되는 답변의 확장으로 사람들은 종종 복사 모드를 종료하기 위해 마우스 버튼을 놓는 것이 불편하다고 생각합니다 copy-pipe-and-cancel
. 바라보다:https://github.com/tmux/tmux/issues/140. 따라서 최신 tmux(2.6을 사용 중)에서는 다음을 copy-pipe
사용하여 clear selection
선택 항목에 복사할 수 있지만 복사 모드를 종료할 수는 없습니다 .
bind-key -T copy-mode-vi MouseDragEnd1Pane send -X copy-pipe "xclip -selection clipboard -i" \; send -X clear-selection
답변4
위의 답변에 추가하면 이것은 Mac에서 나에게 효과적이었습니다. 제 경우에는 xclipboard를 사용해도 작동하지 않았습니다.
bind -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel pbcopy