如何增加tmux中的滚动缓冲区大小?
如果进入复制模式,可用的滚动行数始终低于2000。
如何增加tmux中的滚动缓冲区大小?
如果进入复制模式,可用的滚动行数始终低于2000。
历史记录限制是一个窗格属性,在创建窗格时固定,不能为现有窗格更改。该值取自history-limit会话选项(默认值为2000)。
要创建具有不同值的窗格,您需要在创建窗格之前设置适当的history-limit选项。
要建立不同的默认值,你可以在.tmux.conf文件中放入如下一行:
set-option -g history-limit 3000
注意:要小心设置一个非常大的默认值,如果你创建了很多窗格,它很容易消耗大量的RAM。
对于现有会话中的新窗格(或新窗口中的初始窗格),可以设置该会话的历史限制。你可以使用这样的命令(从shell中):
tmux set-option history-limit 5000 \; new-window
对于(初始窗口的初始窗格)一个新会话,你需要在创建会话之前设置“全局”历史限制:
tmux set-option -g history-limit 5000 \; new-session
注意:如果您不重新设置历史限制值,那么新的值也将用于将来创建的其他窗格/窗口/会话;目前没有一种直接的方法可以在不(至少暂时)更改history-limit的情况下创建具有自己特定限制的单个新窗格/窗口/会话(尽管show-option(特别是在1.7及后续版本中)可以帮助检索当前值,以便稍后恢复它)。
使用如下命令打开tmux配置文件:
vim ~/.tmux.conf
在配置文件中增加如下一行:
set -g history-limit 5000
退出再登录,启动一个新的tmux窗口,现在你的限制是5000个。
本文基于ntc2和Chris Johnsen的回答。每当我想要创建一个具有自定义历史记录限制的新会话时,我都会使用这个。我想要一种方法来创建具有有限滚动的会话,而不会永久地更改未来会话的历史限制。
tmux set-option -g history-limit 100 \; new-session -s mysessionname \; set-option -g history-limit 2000
无论是否存在现有会话,这都有效。在为新会话设置history-limit后,它会将其重置为默认值,对我来说是2000。
我创建了一个可执行的bash脚本,使这一点更有用。传递给脚本的第一个参数设置新会话的历史限制,第二个参数设置会话名称:
#!/bin/bash
tmux set-option -g history-limit "${1}" \; new-session -s "${2}" \; set-option -g history-limit 2000
这将在一行代码中修复它:
echo "set -g history-limit 5000" >> ~/.tmux.conf
对于那些不知道在哪里找到.tmux.conf文件的人,您可以简单地在~/.tmux.conf中创建一个新文件,然后将这一行添加到文件set-option -g history-limit 50000如果以上命令会抛出错误。(评论来自@C。李对此的回答)