Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scroll 如何增加tmux中的回滚缓冲区大小?_Scroll_Tmux - Fatal编程技术网

Scroll 如何增加tmux中的回滚缓冲区大小?

Scroll 如何增加tmux中的回滚缓冲区大小?,scroll,tmux,Scroll,Tmux,如何在tmux中增加回滚缓冲区大小 如果进入复制模式,可用的回滚行数(在右上角可见)始终低于2000。我试图找到所有tmux命令的列表,但找不到任何关于回滚大小的信息。就我所看到的所有设置而言,该选项不适用于tmux 使用tmux1.8,Ubuntu 12.04 LTS,无论是konsole还是gnome terminal,历史限制是一个窗格属性,在创建窗格时是固定的,不能为现有窗格更改。该值取自历史限制会话选项(默认值为2000) 要创建具有不同值的窗格,您需要在创建窗格之前设置相应的历史限制

如何在
tmux
中增加回滚缓冲区大小

如果进入复制模式,可用的回滚行数(在右上角可见)始终低于2000。我试图找到所有tmux命令的列表,但找不到任何关于回滚大小的信息。就我所看到的所有设置而言,该选项不适用于
tmux


使用
tmux
1.8,Ubuntu 12.04 LTS,无论是
konsole
还是
gnome terminal
,历史限制是一个窗格属性,在创建窗格时是固定的,不能为现有窗格更改。该值取自
历史限制
会话选项(默认值为2000)

要创建具有不同值的窗格,您需要在创建窗格之前设置相应的
历史限制
选项

要建立不同的默认设置,可以在
.tmux.conf
文件中放置一行,如下所示:

set-option -g history-limit 3000
注意:请小心设置一个非常大的默认值,如果创建多个窗格,很容易消耗大量内存

对于现有会话中的新窗格(或新窗口中的初始窗格),可以设置该会话的
历史限制。您可以使用如下命令(从shell):

对于(中初始窗口的初始窗格)新会话,您需要在创建会话之前设置“全局”
历史限制

tmux set-option -g history-limit 5000 \; new-session

注意:如果不重新设置
历史限制
值,则新值也将用于将来创建的其他窗格/窗口/会话;目前,没有直接的方法可以创建一个具有自己特定限制的新窗格/窗口/会话,而无需(至少暂时)更改
历史限制
(尽管
显示选项
(特别是在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
无论是否存在现有会话,这都有效。为新会话设置历史限制后,它会将其重置回默认值,对我来说是2000

我创建了一个可执行的bash脚本,使它更有用。传递给脚本的第一个参数设置新会话的历史限制,第二个参数设置其会话名称:

#!/bin/bash
tmux set-option -g history-limit "${1}" \; new-session -s "${2}" \; set-option -g history-limit 2000

如果“行”实际上只是其中的字符,那么我们可以假设128字节是内存中合理的行大小。如果我愿意提交32MB的内存来回滚一个窗格(这对我来说很合适,我不使用很多窗格),那么我可以将我的历史限制增加到大约
2**(25-7)=256K
或250000行。我最终决定
set option-g历史限制50000
我的似乎只增加到4700行左右。。即使是一个新的窗格。tmux 1.9对于那些不知道在哪里可以找到.tmux.conf文件的人,您只需在~/.tmux.conf处创建一个新文件,然后将这一行添加到文件集选项-g history limit 50000我遇到了一个小麻烦。为了使此更改生效,必须关闭所有tmux会话。来自GNU屏幕,我假设每个新的屏幕会话都会产生~/.tmux.conf,但事实并非如此。只有当所有tmux会话都关闭并且新会话打开时,~/.tmux.conf的更改才会生效。不需要注销和登录。您只需完全退出tmux服务器,或者确保在每个会话中都源代码
~/.tmux.conf
(&然后在这些会话中启动新窗口并关闭所有旧窗口)。这不适用于50这样的较小限制,但适用于5000。用
seq 1 5100测试并用^B向后滚动+PgUp@rubo77这是一个伟大的观点,我不知道。我没有测试它,因为问题是增加缓冲区,而不是减少缓冲区。请允许我问你,为什么要减少缓冲区?从我的头脑中,我可以想到优化和内存限制?我无意中尝试了这一点,但也许你与某人共享会话,不希望其他人看到更长的历史,将其限制为10
#!/bin/bash
tmux set-option -g history-limit "${1}" \; new-session -s "${2}" \; set-option -g history-limit 2000