我正在使用为 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 行:
答案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 always
;caption 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 %='