如何使用 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 會話。用滑鼠突出顯示一些文本,但不要放開滑鼠。現在,當文字仍然突出顯示並按下滑鼠時,按回車鍵。突出顯示的文字將消失並複製到剪貼簿。現在放開滑鼠。

除此之外,您還可以使用滑鼠執行一些很酷的操作,例如上下捲動、選擇活動窗格等。

如果您使用的是較新版本的 tmux在 macOS 上,請嘗試以下操作而不是上面的操作:

# 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 > 首選項 >「常規」選項卡,然後在「選擇」部分中選取「終端機中的應用程式可以存取剪貼簿」。

如果你正在使用Linux和更新版本的 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
  • 貼上任意位置(自身之外tmuxCtrl+ 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'

只要記住使用以下命令安裝(以 root 身份)xclip軟體包pkg install xclip:-)

一些更有用的提示:

  • set -g repeat-time 0當您在一個窗格中有編輯器並且在其他窗格中有 shell 或其他遊標操作的應用程式時,使用將停用以下 tmux 命令鍵。通常,跟隨遊標鍵會在窗格之間切換一段時間,如果您想在已切換到的窗格中快速使用遊標,這在某些情況下可能會分散注意力和煩人。
  • 用於set -g status-style fg=white,bg=green輕鬆區分不同遠端電腦上的不同會話。在不同的機器上設定不同的bg值將幫助您快速識別要使用的機器:-)

相關內容