我使用水平分割的 GNU 屏幕,但决定哪个窗格处于活动状态并不总是那么容易(例如,当在其中一个窗格中使用像 top 这样的程序时)。当窗格处于活动状态时,是否可以更改标题中文本的颜色?
我现在使用这些设置:
hardstatus alwayslastline "%{= G}%{g}[ %{G}%H %{g}][ %?%-Lw%?%{R} %n*%f %t %{g}%?%+Lw%? %{g}]%=%{g}[ %{W}%c:%s %{g}]"
caption splitonly "%{= g}[%n %t]"
如果能够在窗格处于活动状态时更改 的颜色,或者以其他方式突出显示窗格,那就太好%n %t
了R
。
答案1
我查看了屏幕手册页的 STRING ESCAPES 部分,找到了您可能想要的内容。这 ? escape 就像一个 if 语句,而 : escape 就像一个 else 语句。当该窗口具有焦点时,F 转义为真。因此,if active then, else 的 if-then-else 语句将如下所示(添加填充是为了提高可读性):
%? %F active-window options %: inactive-window-options %?
原始选项是 %{= g} (填充字符串以显示宽度和绿色)将活动屏幕文本更改为亮红色将如下所示:
caption splitonly "%?%F%{= R}%:%{= g}%?[%n %t]"
https://www.gnu.org/software/screen/manual/screen.html#String-Escapes