如何在tmux
中增加回滚缓冲区大小?
如果我进入复制模式,可用回滚线的数量(在右上角可见)总是低于2000.我试图找到所有tmux命令的列表,但我找不到有关回滚大小的任何内容。总而言之,我看到screen
command设置该选项不适用于tmux
。
使用tmux
1.8,Ubuntu 12.04 LTS,konsole
或gnome-terminal
。
答案 0 :(得分:356)
历史记录限制是一个窗格属性,在创建窗格时修复,无法更改现有窗格。该值取自history-limit
会话选项(默认值为2000)。
要创建具有不同值的窗格,您需要在创建窗格之前设置相应的history-limit
选项。
要建立不同的默认值,您可以在.tmux.conf
文件中添加如下所示的行:
set-option -g history-limit 3000
注意:小心设置一个非常大的默认值,如果你创建了许多窗格,它可能很容易消耗大量的内存。
对于现有会话中的新窗格(或新窗口中的初始窗格),您可以设置该会话的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及更高版本中)可以帮助检索当前值以便稍后恢复。)
答案 1 :(得分:13)
使用以下命令打开tmux配置文件:
vim ~/.tmux.conf
在配置文件中添加以下行:
set -g history-limit 5000
注销并重新登录,启动新的tmux窗口,现在限制为5000.
答案 2 :(得分: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