背景
我特别喜欢 tmux 和复制模式,但通常我想复制一些可能是我的历史记录的东西,或者我只是滚动浏览我的历史记录,即使在复制后也想继续滚动到我上次停下来的地方。
问题
有没有办法在不退出复制模式的情况下猛拉选择?
其他问题
我的问题与另一个未回答的问题类似,但该问题是针对屏幕的,而不是针对 tmux 的:GNU 屏幕多次追加缓冲区而不退出复制模式
答案1
AFAIK,既没有tmux
也screen
没有任何办法做到这一点。 Yank 会替换当前缓冲区,但不会追加到其中。
如果您在桌面环境中的终端模拟器中运行tmux
(或在 Linux 控制台上使用加仑/分钟对于鼠标剪切/复制/粘贴),执行与您想要的类似操作的最简单方法是vim
在另一个终端中运行 或其他编辑器,然后使用鼠标将文本复制粘贴到编辑器的缓冲区中。我就是做这个的。
或者,将整个缓冲区保存到文件中,然后使用vim
或其他方法编辑文件以删除您不想保留的所有内容。
还有一个tmux
插件叫tmux 复制它使用xsel
(或xclip
, 或wl-copy
) 将您复制的任何内容复制到系统剪贴板。将其修改为使用xsel -a -i
而不仅仅是xsel -i
.可能很简单。我不知道如何,我从未使用过tmux-yank
,我只是通过搜索才发现它https://duckduckgo.com/?q=tmux+yank&ia=web
答案2
这就是我保持复制模式打开的方法
set-window-option -g mode-keys vi
bind-key -T copy-mode-vi v send -X begin-selection
bind-key -T copy-mode-vi V send -X select-line
- bind-key -T copy-mode-vi y send -X copy-pipe-and-cancel 'xclip -in -selection clipboard'
+ bind-key -T copy-mode-vi y send -X copy-pipe 'xclip -in -selection clipboard'
我使用了 tmux vim 配置 这里,并将上面的行从 copy-pipe-and-cancel 更改为 copy-pipe