在 xterm 内的 tmux 会话中,当程序生成大量输出时(例如cat very_long_file整个会话冻结了一段时间。即使我按 Ctrl-C 也没有任何中断。大概是因为 tmux 被冻结并且它没有将 Ctrl-C 转发到生成输出的程序。有什么办法可以防止这种情况发生。
概括
当我有一个输出大量文本的 tmux 窗格时,tmux 变得无响应。在文本完成之前,所有 tmux 命令都将被忽略。
这是通过引入选项在 tmux 中修复的:
c0-change-trigger - Number of control characters that occur in 1 ms to trigger throttling
c0-trigger-update - Time to wait between pane redraws when triggered
Run Code Online (Sandbox Code Playgroud)
问题
我正在使用 tmux 1.8。我在 ~/.tmux.conf 文件中设置了以下选项:
# Limit character spewing
set -g c0-change-trigger 100 # default is 250 triggers/millisecond
set -g c0-change-interval 1000 # default throttle updates at 100 ms intervals
Run Code Online (Sandbox Code Playgroud)
但是,tmux 仍然会因过多的文本而窒息。例如,如果我转到一个窗格并键入:
find /
Run Code Online (Sandbox Code Playgroud)
该命令会生成大量文本,即使设置了 c0-* 选项,tmux 也不允许我切换窗格、切换窗口、分离等。
我知道您可以通过键入以下内容来查看设置的选项:
Ctrl-<Prefix> …Run Code Online (Sandbox Code Playgroud)