Gnu screen:命令字符数超过 100 个 - 无法更改硬状态

Gnu screen:命令字符数超过 100 个 - 无法更改硬状态

我的 .screenrc 文件中设置了硬状态行:

hardstatus alwayslastline '%{= kg}[ %{G}%H %{g}][%= %{= kB}%?%-Lw%?%{+b r}(%{G}%n*%f %t%?(%u)%?%{r})%{-b B}%?%+Lw%?%?%= %{g}%]'
# This is 127 characters

我经常登录与其他用户共享的远程服务器,这些用户有自己最喜欢的硬状态行。我想在启动会话后输入命令来更改我的屏幕会话的硬状态。不幸的是,在达到 100 个字符后,屏幕停止接受命令的输入。

当我谈到屏幕命令时,我指的是键入ctrl+a :

有没有办法将屏幕命令字符限制增加到 100 个字符以上,或者有其他方法可以在不更改 .screenrc 文件的情况下设置硬状态?最好在会话启动后更改它,但如果可能的话,启动屏幕时的命令行选项也是一个不错的选择。

解决该问题的一种方法是将 hardstatus 行放在文件中并输入ctrl+ a :source <file>,或者在启动屏幕后输入以下内容:

screen -p <SESSION_NAME or PID> -X hardstatus alwayslastline '%{= kg}[ %{G}%H %{g}][%= %{= kB}%?%-Lw%?%{+b r}(%{G}%n*%f %t%?(%u)%?%{r})%{-b B}%?%+Lw%?%?%= %{g}%]'

但我真的很想知道如何增加命令的字符限制。

提前致谢,

马修

答案1

你不能;100 个字符的限制是硬编码的(我认为上限是在屏幕/src/输入.c,但函数调用者可能一开始就提供较短的缓冲区,因此这可能不是唯一需要修补的地方)。

作为一种不太需要输入的解决方案,我建议添加一个.screenrc-DarthAndroid首先调用source .screenrc然后添加您首选的覆盖设置;然后创建一个 shell 别名myscr="screen -c ~/.screenrc-DarthAndroid "

相关内容