今天,我终于决定在我的家庭服务器上重新安装操作系统,从 CentOS 5 到 CentOS 7。除此之外,我决定尝试 tmux 而不是我多年来使用的 screen。我能够重新配置它的外观和感觉,几乎完美地满足我的需要,但仍然有一件烦人的事情。在屏幕上,当我执行某些操作时(例如在 vi 中 - 尝试在第一行上向上移动光标,或按未知的热键等) - 背景闪烁一会儿 - 我想这是一种警告或类似的东西。无论如何,我喜欢这个功能。
现在在 tmux 中,它不会闪烁。不仅如此,它还播放系统默认声音。这真的很烦人。如何将这种声音更改为视觉闪烁?
如果这很重要的话,我正在通过 win 桌面的 putty 连接到该服务器。
答案1
简短:在你的.tmux.conf
set -g visual-bell on
长:某些应用程序会同时检查bel
和flash
终端功能,并允许您选择要使用的功能。 tmux
才不是。它只读bel
, 那么你可以修改您的终端描述以更改bel
到一个用于闪烁显示的字符串。
这可能会起作用,但同时tmux
读terminfo数据,它没有使用相应的tputs
或者putp
用于发送包含时间延迟的 terminfo 数据的函数。大多数终端(包括所有模仿 xterm 的终端)上都需要这些延迟才能实现flash
。
screen
有趣的是, has的终端描述flash=\Eg
,但它或 tmux 都没有对此做任何事情( screen 在内部使用它作为其视觉铃声功能的一部分)。 tmux 同样具有视觉响铃功能,您可以在配置文件中设置该功能。这不会使屏幕闪烁,而只是在状态行中放置一个短暂的警报。
进一步阅读:
visual-bell
[上|离开]
如果启用此选项,则消息会显示在铃声上,而不是传递到终端(通常会发出声音)。另请参阅bell-action
选项。
bell-action
[任何|无 |当前|其他]
设置窗铃动作。 any 表示链接到会话的任何窗口中的响铃会导致该会话的当前窗口中响铃,none 表示忽略所有响铃,current 表示仅忽略当前窗口以外的窗口中的响铃,other 表示当前窗口中的响铃会被忽略,但其他窗口中的不会被忽略。