我在 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)