我有大约 400k 行输出要在 tmux 中滚动。如何加快复制模式下的滚动速度?或者,如何将所有(已生成的)输出内容传输到文件中?
答案1
如果您想要跳转到缓冲区的开头或结尾,则可以使用适当的编辑器命令来执行此操作。如果您将 tmux 配置为类似 vi,“g”将跳转到缓冲区的顶部,而“G”将跳转到底部。我的设置是类似 vi 的,所以我不知道在这种情况下的 emacs 击键。
答案2
我不完全确定我理解问题的第一部分:
如果您想一次向上滚动一页以上,可以向向上翻页添加重复计数:在复制模式下执行M-10 PageUp
(使用 emacs 键绑定)或10C-b
(使用 vi 键绑定)一次向上滚动 10 页。但是,我宁愿使用搜索功能C-s
和C-r
emacs 键以及/
vi?
键。
要捕获窗格的整个历史记录,我会这样做(需要 tmux 2.0 或更高版本):
$ tmux capture-pane -S - -E - # save the history in a paste buffer
如果您有旧版本的 tmux,请提供类似的-S -400000
参数作为tmux capture-pane
.
然后,您可以使用 将历史记录粘贴到任何您想要的位置prefix-]
。要将历史记录保存到文件中,请执行以下操作:
$ tmux save-buffer /tmp/myhistory # save the history in /tmp/myhistory
我有线
bind-key C command-prompt -p 'save history to:' \
-I '/tmp/tmux-%F_%H_%M.log \
capture-pane -S -; save-buffer %1'
在我的$HOME/.tmux.conf
(我改编自这个答案)。这提示我想用合理的默认值保存整个历史记录。
如果您想节省一些内存,请使用 删除它$ tmux delete-buffer
。