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


328

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

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

使用tmux1.8 konsole或Ubuntu 12.04 LTS gnome-terminal

Answers:


428

历史限制是在创建窗格时固定的窗格属性,不能为现有窗格更改。该值来自history-limit会话选项(默认值为2000)。

要创建具有其他值的窗格,您需要history-limit在创建窗格之前设置适当的选项。

要建立其他默认值,您可以在.tmux.conf文件中添加以下内容:

set-option -g history-limit 3000

注意:请小心设置一个很大的默认值,如果创建许多窗格,它很容易消耗大量RAM。

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

tmux set-option history-limit 5000 \; new-window

对于新会话(初始窗口的初始窗格),您需要history-limit在创建会话之前设置“全局” :

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

注意:如果不重新设置该history-limit值,则新值还将用于将来创建的其他窗格/窗口/会话;当前没有直接方法来创建具有其特定限制的单个新窗格/窗口/会话,而不会(至少是暂时地)更改history-limit(尽管show-option(尤其是在1.7及更高版本中)可以帮助检索当前值,以便稍后还原它) )。


26
如果“行”实际上只是其中的字符,那么我们可以假定128字节是内存中合理的行大小。如果我愿意为单个窗格回滚32 MB(适合我,我不使用很多窗格),那么我可以将历史记录限制增加到大约2 ** (25 - 7) = 256K25万行。
Phs

8
我最终定居于set-option -g history-limit 50000
ph

2
我的似乎只能上升到4700左右。tmux 1.9
wuxmedia

4
对于那些不知道在哪里找到.tmux.conf文件的人,您只需在〜/ .tmux.conf中创建一个新文件,然后将此行添加到文件set-option -g history-limit 50000中
C.Lee

1
我遇到了一些麻烦。为了使此更改生效,必须关闭所有tmux会话。来自GNU屏幕,我假设每个新的屏幕会话都将来自〜/ .tmux.conf,但事实并非如此。仅当所有tmux会话均已关闭且新会话已打开时,对〜/ .tmux.conf的更改才会生效。
rudolph9 '18

24

使用以下命令打开tmux配置文件:

vim ~/.tmux.conf

在配置文件中,添加以下行:

set -g history-limit 5000

注销并再次登录,启动新的tmux窗口,现在限制为5000。


3
无需注销和登录。您只需要完全退出tmux服务器,或者确保您~/.tmux.conf在每个会话中都进行了源代码(然后在这些会话中启动新窗口并关闭任何旧窗口)。
henrebotha

3

这基于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
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.