在 osx 上,ssh/screen 的标签标题错误

在 osx 上,ssh/screen 的标签标题错误

我在做

ssh -t host screen -D -RR

在 OS X (10.9) 终端选项卡中。

My~/.screenrc在所有远程主机上都是相同的,并包含以下行:

hardstatus string "%H(%n:%t)$USER %h"

我的~/.bashrc所有主机上也是相同的。

当我登录到运行的主机host_uUbuntu 12.04.3 LTS)时Screen version 4.00.03jw4 (FAU) 2-May-06,OS X 终端上的选项卡标题是host_u(1:bash)sds ~,正如预期的那样。

当我登录到主机host_cCentOS release 6.3 (Final))运行时Screen version 4.00.03 (FAU) 23-Oct-06,OS X 终端上的选项卡标题是~/FooBar(这是我运行命令的本地 OS X 目录)ssh/screen

问题:该hardstatus线路不通host_c

附加信息

.screenrc

termcapinfo xterm* ti@:te@

在和上host_chost_u都是TERMxterm-256color从 OS X 终端继承)。

答案1

要设置硬状态,screen 需要知道要发送到终端(模拟器)的正确转义码;它们可以通过 termcap/terminfo 找到。相关功能包括:

  • hs- 如果设置,终端支持硬状态线
  • ts- 将光标移动到硬状态行(“开始”)
  • fs- 将光标移回之前的位置(“完成”)
  • ds- 如何清除/重置硬状态(“默认”)。

没有人再有真正的“hardstatus”行了。要使用 xterm 或其他 GUI 仿真器的标题,需要设置功能;为了避免混淆程序,它们不会在常规 termcap/terminfo 数据库中设置。您可以在那里添加它们,或者您可以在 .screenrc 中告诉 screen 如果设置了它们会是什么:

termcapinfo xterm* 'hs:ts=\E]0;:fs=\007:ds=\E]0;screen\007'
(这会设置默认标题“屏幕”,但这可能不太相关。实际的转义代码可能因您的终端仿真器而异 - 特别是,对于某些 xterm 变体,可能不需要0in \E]0;,或者可能需要不同的值;请检查您的终端仿真器的手册页。)

这些设置将由屏幕使用,但不能用于任何其他应用程序;例如,如果您有一个想要覆盖硬状态的编辑器,它会查找真正的 termcap,找到hs未设置的(或系统默认值)并且知道不要这样做。

相关内容