我现在可以通过运行此命令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+B
Ctrl+Y
你只希望会尝试使用https://github.com/tmux-plugins/tmux-yank但如果您通过 SSH 连接,即使这样也不起作用。因此,对于不使用此功能并手动执行所有操作的其他人,您无能为力:
- 要保存最后 3000 条历史记录,请输入
Ctrl+B
eShift+:
并输入:capture-pane -S -3000
将它们复制到tmux
缓冲区。 - 最后,按
Ctrl+B
,Shift+:
然后键入save-buffer ~/filename.txt
将控制台历史记录保存到文件中。您必须使用绝对路径,因为tmux
不直接尊重您的当前路径并将其保存在任何地方。 - 现在,您必须将文件内容从远程计算机复制到本地计算机。如果您使用的是 Windows,只需使用
Filezilla
或连接到您的远程计算机。WinSCP