如何将 tmux 整个缓冲区复制到剪贴板?

如何将 tmux 整个缓冲区复制到剪贴板?

我现在可以通过运行此命令capture-pane -S -3000并使用此键绑定来执行此操作:

bind C-y run "tmux save-buffer - | clip"

这需要我记住输入capture-pane -S -3000并按Ctrl+B, Ctrl+Y

我想一步完成,例如:

bind C-y capture-pane -S -3000; run "tmux save-buffer - | clip"

但这不起作用。

tmux最理想的是,如果询问我想从缓冲区复制多少行,那就太好了。举个例子:

bind C-y capture-pane -S -ASK_HOW_MANY_LINE_TO_INPUT; run "tmux save-buffer - | clip"

然后,如果我按Ctrl+B, Ctrl+Y,我会输入 3000 并按 Enter 键以获取最后 3000 行。

答案1

绑定 Cy 运行“tmux capture-pane -pS-|clip”

绑定 Cy 命令提示符 -p“多少行?” '运行“tmux capture-pane -pS-%%%|clip”'

答案2

正确的答案是使用xclip -i而不是clip:`

bind-key C-y run "tmux capture-pane -pS-|xclip -i"

bind-key C-y command-prompt -p "How many lines?" 'run "tmux capture-pane -pS-%%%|xclip -i"'

但仍然无法工作,因为tmux有很多问题。第一次使用此功能后,当我按,时,tmux停止工作并忽略我。Ctrl+BCtrl+Y

你只希望会尝试使用https://github.com/tmux-plugins/tmux-yank但如果您通过 SSH 连接,即使这样也不起作用。因此,对于不使用此功能并手动执行所有操作的其他人,您无能为力:

  1. 要保存最后 3000 条历史记录,请输入Ctrl+BeShift+:并输入:capture-pane -S -3000将它们复制到tmux缓冲区。
  2. 最后,按Ctrl+BShift+:然后键入save-buffer ~/filename.txt将控制台历史记录保存到文件中。您必须使用绝对路径,因为tmux不直接尊重您的当前路径并将其保存在任何地方。
  3. 现在,您必须将文件内容从远程计算机复制到本地计算机。如果您使用的是 Windows,只需使用Filezilla或连接到您的远程计算机。WinSCP

相关内容