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


1

我现在可以通过运行以下命令capture-pane -S -3000并使用以下键盘绑定来做到这一点:

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

这需要我记住输入capture-pane -S -3000和按下Ctrl+BCtrl+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+BCtrl+Y我将输入3000并按Enter键以获取最后的3000行。

Answers:


3

绑定Cy运行“ tmux捕获窗格-pS- |剪辑”

绑定Cy命令提示符-p“多少行?” “运行“ tmux捕获窗格-pS-%%% |剪辑””


0

正确的答案应该是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+Be Shift+:并键入:capture-pane -S -3000将它们复制到tmux缓冲区。
  2. 最后,按Ctrl+BShift+:然后键入save-buffer ~/filename.txt以将您的控制台历史记录保存到文件中。您必须绝对路径,因为tmux它不直接尊重您的电流,并将其保存在任何地方。
  3. 现在,您必须将文件内容从远程计算机复制到本地计算机。如果使用Windows,则只需使用Filezilla或连接到远程计算机WinSCP
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.