使用tmux在终端中滚动和选择鼠标

时间:2015-10-28 18:21:11

标签: terminal tmux gnu-screen

我刚刚从 GNU屏幕切换到 tmux 2.0 ,我惊讶地发现我无法再使用鼠标滚轮和 Shift回滚终端历史记录-PgUp / 移-PgDn键

对我来说这是一个很大的转折点。如何使用tmux 终端滚动?

PS。我知道我可以set-window-option -g mode-mouse on使用鼠标滚轮滚动 tmux 缓冲区 - 而不是 终端缓冲区。这个设置的另一个副作用是我不能再按常规方式选择鼠标了 - 我必须用鼠标左键按 Shift

IOW:如何告诉tmux将所有鼠标事件传递给终端模拟器?

PPS。 Ubuntu 15.10;侏儒末端;滚动条在右侧清晰可见,但在screen下,它们表示只显示缓冲区的一小部分,而在tmux下,它们表示没有可滚动的内容。

1 个答案:

答案 0 :(得分:2)

我怀疑你的问题实际上是根本没有将行放在回滚缓冲区中,而不是tmux接管鼠标和键。

默认情况下,Tmux使用"备用屏幕缓冲区" (您可能会注意到,如果您在屏幕上显示文本,然后附加和分离tmux,文本将会返回)。许多终端仿真器不会将在此模式下滚动或擦除的文本放在回滚缓冲区中。要禁用此功能,请执行以下操作:

DECLARE @startdate DATE, @enddate DATE    
SET @startdate = '01-10-2012'       
SET @enddate = '10-11-2012'

SELECT CustomerId, InvoiceType, SUM(Total) As Total
FROM Invoices       
WHERE Date BETWEEN @startdate AND @enddate
GROUP BY CustomerID, InvoiceType

其中set -g terminal-overrides 'xterm*:smcup@:rmcup@' 是您的终端报告自己的内容,如$ TERM环境变量。如果以交互方式设置选项,则可能需要分离,重置终端并重新连接,以使其正常工作。

注意:如果您使用termcap而不是terminfo,请使用xterm*ti代替te / smcup