复制(到 X 剪贴板).tmux.conf 中的快捷方式

复制(到 X 剪贴板).tmux.conf 中的快捷方式

为了将文本复制到 tmux 中的 X 剪贴板,我当前所做的是:

  • 进入选择模式prefix[
  • 开始选择space(使用mode-keys vi顺便说一句)
  • 选择文本并按enter
  • 使用以下命令将 tmux 缓冲区复制到 X 剪贴板prefixctrl+c

(我有一个映射bind C-c run "tmux show-buffer | xclip -selection clipboard -i"

我试图通过为选择模式进行映射来消除其中一些步骤。我努力了:

bind-key -t vi-copy C-c run "tmux show-buffer | xclip -selection clipboard -i"

这给了我和错误:

.. usage: bind-key [-cnr] [-t key-table] key command [arguments]

(我无法复制错误)

我怎样才能解决这个问题?

编辑:我意识到我可以使用鼠标选择并复制到 tmux 缓冲区(前 3 个步骤),就像常规选择一样(虽然突出显示不会持续,但它仍然选择文本),然后使用以下绑定复制到 x 剪贴板:

bind-key -n C-c run "tmux show-buffer | xclip -selection clipboard -i"

(我用这个方法复制这段文字,很简单;)

请注意,-n表示“无前缀”,因此不需要转义。如果您没有对消失的突出显示感到困惑,这类似于常规(通用用户界面)复制。

这是迄今为止我想出的最好的..

编辑2:结果与进程中断的事情重叠,所以我现在ctrl+c改为。 ctrl+alt+c(不太喜欢)

编辑3:tmux 1.8 左右添加了在复制模式下添加键绑定的支持,因此现在我的第一个初衷可以使用以下内容:

bind-key -tvi-copy y copy-pipe "xclip -selection clipboard -i"
bind-key -tvi-copy enter copy-pipe "xclip -selection clipboard -i"

这两个绑定使我可以在使用entery完成复制时将文本复制到剪贴板。

我仍然保留这一行,以防我用鼠标进行复制并决定稍后将 tmux 缓冲区内容复制到剪贴板:

bind-key y run "tmux show-buffer | xclip -selection clipboard -i"

答案1

此回复并没有直接回答您有关创建快捷方式的问题。但这就是我所做的。

您可以通过按住 暂时停止将键/鼠标事件传递到 tmux shift。因此,您可以按住 Shift 并使用终端/X 的常规快捷键来进行复制。在我使用终结者的情况下,我按shift,用鼠标突出显示我想要的任何内容,然后复制Ctrl+Shift+C

如果您有拆分窗格,您可以使用 Zoom-toggle-key 缩放当前窗格Prefix + z,并执行复制操作。 (在 tmux v1.8 上测试)

答案2

这并不能直接回答您的问题,但请看一下tmux 复制,如中所述在 tmux 中以 vi-copy 模式使用系统剪贴板让 tmux 将缓冲区复制到剪贴板。安装后,

prefix + y- 将文本从命令行复制到剪贴板。

复制模式绑定:

y- 将选择复制到系统剪贴板

相关内容