mbi*_*ras 78 tmux clipboard mouse
我正在使用tmux
和 OSX。从终端复制和粘贴时,tmux
我可以按住Option
并选择文本。但是我无法让文本留在窗格内。因此,当我想复制文本时,我需要将窗格循环到最左侧,或者缩放窗格,如下所示。
除了必须按住Option
键之外,这也是一种痛苦。我知道我可以进入可视模式并使用 vim 移动来到达那里,但我宁愿有一种使用鼠标的方法。有没有人找到解决方法?
GMa*_*ter 77
将此代码块放在您的~/.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"
Run Code Online (Sandbox Code Playgroud)
之后,重新启动您的 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"
Run Code Online (Sandbox Code Playgroud)
如果在 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"
Run Code Online (Sandbox Code Playgroud)
在 Debian 和基于 Debian 的发行版(Ubuntu、Kali)中,您可能需要安装xclip
:
sudo apt-get install -y xclip
Run Code Online (Sandbox Code Playgroud)
(您也可以查看https://github.com/gpakosz/.tmux以了解许多其他 tmux 选项。)
小智 19
在 ~/.tmux.conf 中添加这两行
set -g @plugin 'tmux-plugins/tmux-yank'
set -g mouse on
Run Code Online (Sandbox Code Playgroud)
然后安装适合我的插件。
https://github.com/tmux-plugins/tmux-yank
小智 9
Ubuntu 20.04 中什么对我有用
Shift
按住+ 用光标选择文本Shift
选择文本后Ctrl
++Shift
c
tmux
)Ctrl
+ v
,因为这会将文本复制到系统剪贴板上tmux 有自己的内部剪贴板,不会复制到系统剪贴板。
由于您使用的是 macOS,因此您可以简单地要求 tmux 将其剪贴板传输到系统剪贴板(通常的剪贴板)。这是通过下面的命令完成的,为了方便起见,可以将其绑定到 Ctrl-b Ctrl-c (如果您使用标准 Ctrl-b 来调用 tmux 命令).tmux.conf
:
bind C-c run "tmux save-buffer - | pbcopy" # Copy to macOS
Run Code Online (Sandbox Code Playgroud)
因此,您可以在使用 tmux 时简单地用鼠标选择文本(无需按任何键)。tmux 很棒,因为它只会选择当前窗格中的文本(即使您并排有多个窗格)。该文本被复制到 tmux 的内部剪贴板。然后,您可以简单地使用 Ctrl-b Ctrl-c 将其传输到系统剪贴板。
归档时间: |
|
查看次数: |
77195 次 |
最近记录: |