Byobu / Tmux 复制整行

Byobu / Tmux 复制整行

我在 tmux 模式下使用 byobu。在屏幕上我可以这样做:

Ctrl+a [, move to line, Y, Ctrl+a ]

“Y”将整行复制到剪贴板中。我正在 tmux 模式下的 byobu 中寻找类似的东西。我唯一发现的是:

Ctrl+a/b (depends on your setting) + [, move to line, 0, space, $, enter, Ctrl+a/b + ]

但我觉得击键很难,Y 就容易多了。

答案1

一点改进:用 dospace, V, enter代替0, space, $, enter.键入 single比键入 a和 aV容易得多。相当于vim的“对整行进行视觉模式选择”命令。0$V

我无法直接与 byobu 交谈,但由于它只是面向 tmux,因此您也可以在本机 tmux 中绑定所有这些的密钥。像这样的东西:

bind-key -r -T copy-mode-vi Y send-keys -X begin-selection \; send-keys -X select-line \; send-keys -X copy-selection

然后您只需进入复制模式,转到要复制的行,Y然后按Enter。该行现在将位于粘贴缓冲区中。 (虽然这有点长而且丑陋,但它对我来说确实有用。)

编辑:使用 tmux 2.4 进行测试

答案2

我的 ~/.byobu/.tmux.conf 中有

bind-key -t vi-copy 'v' begin-selection                                                                                                                                 
bind-key -t vi-copy 'y' copy-selection

所以通常我可以通过以下方式进入复制模式:

前缀 + [

然后我可以使用 vi 命令导航并通过 'v' 进入 vi 选择模式,通过 'y' 猛拉选择

之后我可以通过以下方式将/粘贴到终端中:

前缀 + ]

为了复制一行:

    Prefix + [
    navigate to the line
    $ (jump to the end)
    Left Arrow
    v (begin-selection)
    0 (jump to the start of the line)
    y (yank and exit copy mode)

    Prefix + ] (paste the line)

答案3

我找到了原来问题的答案。

您需要在配置中添加以下行:

bind-key -T copy-mode-vi Y send-keys -X end-of-line \; send-keys -X cursor-left \; send-keys -X begin-selection \; send-keys -X start-of-line \; send-keys -X copy-selection-and-cancel

答案4

由于 Tmux 版本较新,我不得不更改我的配置:

bind-key -T copy-mode-vi v send-keys -X begin-selection                                                                                                                 
bind-key -T copy-mode-vi y send-keys -X copy-selection \; send-keys -X cancel

感谢“rushiagr”(http://www.rushiagr.com/blog/2016/06/16/everything-you-need-to-know-about-tmux-copy-pasting-ubuntu

相关内容