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