如何抑制 GNU Screen 垂直分割中的日期/时间显示?

如何抑制 GNU Screen 垂直分割中的日期/时间显示?

我正在使用为 Fedora 18 打包的 GNU Screen 副本。

我复制了这些整齐的线条转到我的.screenrc,向我显示主机/日期时间/窗口:

# Neat status bar on the bottom of the screen
caption string "%?%F%{= Bk}%? %C%A %D %d-%m-%Y %{= kB} %t%= %?%F%{= Bk}%:%{= wk}%? %n "
hardstatus alwayslastline
hardstatus string '%{= kG}[ %{G}%H %{g}][%= %{= kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B} %d/%m %{W}%c %{g}]'

偶尔,我会启动垂直分割 ( Ctrl a - |),这会导致另一个状态栏堆叠在我已有的窗口状态栏之上。这个新的状态栏显示每个分割的日期时间/窗口名称/窗口编号。现在日期时间是一个无用的干扰。我宁愿只看到每个垂直分割的窗口标识,而不要看到其他内容。

如何才能抑制垂直分割状态上日期时间的显示?

如果你想明白我的意思,这里有一张截图。看看屏幕底部的第 2 行:

GNU Screen 运行两个垂直分割的屏幕截图

答案1

这就是你抄袭整齐的线条而不是理解它们所得到的后果,尤其是因为这些看起来已经像是过度抄袭造成的灾难性后果……

  • hardstatus alwayslastline
    这意味着您希望始终显示定义为“hardstatus”的行,并且希望它填充终端的最后一行。

  • hardstatus string <stuff>
    这意味着你正在定义“hardstatus”行应该是什么样子。有关详细信息,请阅读字符串转义解释一下;我先开始吧:

    • %{= kG}颜色${}) 是=) 变为黑色背景和浅绿色前景(kG
    • [_打印文字方括号和空格,
    • %{G}%H_颜色%{})再次(!?)设置为浅绿色前景(G),然后当前主机名打印 ( %H),后跟文字空格
    • %{g}][颜色( %{}) 设置为深绿色前景 ( g),后跟右括号和左括号
    • %=_松紧带填充,后跟一个文字空格(这保证至少有一个空格)
    • %{= kw}颜色%{}) 是=) 至 黑底白字 (kw
    • %?%-Lw%?这个很有趣,需要从内到外阅读:窗口名称列表%w) (如果适用)带旗帜( L),但仅适用于窗口编号小于当前值-);此列表仅打印如果有非空扩展%?...%?对于“if”和“endif”),这在这里没有意义,因为除了单个扩展之外什么都没有,而它本来就是空的。
    • %{r}改变颜色%{}) 到红色前景r

    ...等等,你明白了。它包含多个无意义的元素,包括最后一个条件(既不必要,也没有明确关闭)。

    • caption string <stuff>
      这将设置一个特殊的“标题”,它将显示为每个区域的最后一行。您可以选择始终显示它,或者仅在您使用 或 分割时显示(默认)caption alwayscaption splitonly您无法禁用它,但可以将其设置为空字符串。我将调用初始条件,它很有用:
    • %?%F%{= Bk}%?
      意思%F是“如果当前区域处于活动状态,则执行此操作,即使没有转义序列扩展为可打印字符”。将%{= Bk}颜色设置为浅蓝色上的黑色(“k”)。

无论如何。您想要做的是更改该标题;您说您只想要“每个垂直分割的窗口标识”;我假设您对颜色突出显示没有意见。我会使用这些,全部修复:

hardstatus alwayslastline '%{= kG}[ %H ]%{g}[%= %{w}%-Lw%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%+Lw%= %{g}]%{G}[%{B} %d/%m %{W}%c %{G}]'
caption splitonly '%?%F%{= BW}%:%{= kg}%? %t %='

相关内容