Tmux
如何使用 tmux 滑鼠複製和粘貼
我正在使用
tmux
和 OSX。從終端複製和粘貼時,tmux
我可以按住Option
並選擇文本。但是我無法讓文本留在窗格內。因此,當我想複製文本時,我需要將窗格循環到最左側,或者縮放窗格,如下所示。除了必須按住
Option
鍵之外,這也是一種痛苦。我知道我可以進入視覺模式並使用 vim 動作來到達那裡,但我寧願有辦法使用我的滑鼠。有沒有人找到解決方法?
將此程式碼塊放入您的
~/.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 會話。用滑鼠突出顯示一些文本,但不要鬆開滑鼠。現在,當文本仍然突出顯示並按下滑鼠時,按輸入鍵。突出顯示的文本將消失並複製到剪貼板。現在鬆開滑鼠。
除此之外,您還可以使用滑鼠進行一些很酷的操作,例如上下滾動、選擇活動窗格等。
如果您在 macOS 上使用更新版本的 tmux,請嘗試以下操作,而不是上述操作:
# 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 選項。)