最接近 xterm 且没有备用屏幕的 $TERM 设置是什么?

最接近 xterm 且没有备用屏幕的 $TERM 设置是什么?

某些终端应用程序(例如mosh)在备用屏幕中使用终端,从而禁用终端仿真器的本地滚动。mosh不允许覆盖其终端设置(据我所知),因此强制它不使用备用屏幕并(从而)保持本地滚动工作的一种简单方法是告诉它终端没有备用屏幕:

env TERM=dumb mosh <destination>

mosh现在不再中断滚动,不幸的TERM=dumb是也没有任何其他现代终端功能,例如在标题栏中设置应用程序名称。更有用的是TERM=linux,但仍然没有在标题栏中设置应用程序名称。

那么,最像 xterm$TERM且不支持备用屏幕的设置是什么?

注意:
- 我的默认TERM值是xterm-256color.
- 我意识到还有其他解决方法,例如使用tmuxinside mosh,但有时我不想这样做。
- 我意识到这只给了我本地滚动缓冲区,因此如果 mosh 会话断开连接然后重新连接,它仍然会丢失输出。但有时这已经足够了。

答案1

使用终端条目(或条目中的和)的smcup和功能来切换备用屏幕。rmcupterminfotitetermcap

您可以复制tmux-256colorxterm-256color条目,对其进行编辑以使其具有不同的名称以及 和 的空值smcuprmcup然后通过使用 进行编译,将更改后的版本添加回 terminfo 数据库tic

您至少需要修改第二行的标题/描述(紧接在注释之后#)以及 smcup 和 rmcup 值

例如

mkdir ~/.terminfo
infocmp tmux-256color > /tmp/tmux256-noalt
vi /tmp/tmux256-noalt
tic /tmp/tmux256-noalt

然后export TERM=tmux256-noalt(假设这就是你在 /tmp/tmux256-noalt 文件中所称的)。

如果您想将条目添加到系统的 terminfo db 而不是~/.terminfo/,请tic以 root 身份运行(例如使用sudo)。

我强烈建议阅读恩诅咒、 terminfo、infocmptic和开始之前的相关主题。

顺便说一句,ncurses 的当前作者和维护者,托马斯·迪基,经常访问该网站并经常回答有关该网站的问题。只需阅读他的一些答案,您就可以学到很多东西。他很可能已经回答了这个问题的重复项,但我没有找到(尽管没有非常努力地搜索)。

相关内容