该功能似乎被称为“备用屏幕”或在正常屏幕和备用屏幕之间切换。
您可以使用xterm探索它。例如,输入man man
an xterm
和exit man。现在,您可以通过Ctrl+ Mouse2(单击中键)->“显示备用屏幕” 切换到备用屏幕。或者,您可以直接输入xterm控制序列,例如:
$ echo -e '\033[?47h' # alternate screen
$ echo -e '\033[?47l' # normal screen
最后两个命令也可以在gnome-terminal中运行(可能在其他命令中也可以)。
man
/ vi
/ less
等启动时发生的情况基本上是它们发送抽象的清晰屏幕命令。在退出(或暂停)时,他们发送抽象的restore-screen命令。在terminfo数据库中定义了命令如何转换为具体的终端控制序列。
禁用备用屏幕切换
对于所有终端,应该起作用的是调整本地terminfo条目,即删除抽象的clear / restore屏幕命令的映射。
您可以这样操作-对于当前$TERM
条目(例如,对于Fedora 19上的gnome-terminal):
$ echo $TERM
xterm-256color
$ infocmp -1 > xterm-256color
$ sed 's/^\(xterm-256color\)|/\1-na|/ ; /smcup\|rmcup/d ' \
xterm-256color > xterm-256color-na
$ diff -u xterm-256color*
--- xterm-256color 2013-08-04 16:33:52.041393461 +0200
+++ xterm-256color-na 2013-08-04 16:36:56.829930520 +0200
@@ -1,5 +1,5 @@
# Reconstructed via infocmp from file: /usr/share/terminfo/x/xterm-256color
-xterm-256color|xterm with 256 colors,
+xterm-256color-na|xterm with 256 colors,
am,
bce,
ccc,
@@ -155,7 +155,6 @@
rin=\E[%p1%dT,
rmacs=\E(B,
rmam=\E[?7l,
- rmcup=\E[?1049l,
rmir=\E[4l,
rmkx=\E[?1l\E>,
rmm=\E[?1034l,
@@ -170,7 +169,6 @@
sgr0=\E(B\E[m,
smacs=\E(0,
smam=\E[?7h,
- smcup=\E[?1049h,
smir=\E[4h,
smkx=\E[?1h\E=,
smm=\E[?1034h,
$ tic xterm-256color-na # loads the file to $HOME/.terminfo
$ find ~/.terminfo -type f
$ HOME/.terminfo/x/xterm-256color-na
现在您可以通过以下方式对其进行测试:
$ TERM=xterm-256color-na man man # and then hit q
如果使用多个终端,则可以对其他终端重复上述步骤。如果一切正常,则可以TERM
通过shell rc文件进行设置。
您也可以直接将终端名称指定为的参数infocmp
,例如:
$ infocmp -1 screen > screen
启用备用屏幕切换
一些终端支持备用屏幕切换功能(例如屏幕),但默认情况下禁用它。
对于screen
您可以通过您的启用它~/.screenrc
:
$ cat ~/.screenrc
altscreen
如果您通过ssh远程登录(例如-Solaris系统),则可能是远程配置的系统范围的terminfo数据库有点历史性,已损坏或包含一些与“出血边缘”终端不匹配的特殊/ Solaris缺省设置您运行ssh。
因此,可以选择将本地terminfo数据库从/ usr / share / info(在客户端上)复制到host:~/.terminfo
(在服务器上)。
如果编译的terminfo格式不兼容,您也可以像上一段一样导出/导入条目。
我已经尝试从Cygwin安装中使用terminfo-db 并将其直接复制到工作的Solaris 10系统中。
如果要在用户之间共享替代termterm数据库,则可以通过TERMINFO
环境变量指定其路径。
忽略控制序列
一些终端支持禁用用于交替屏幕切换的控制顺序。例如,xterm有一个选项,gnome-terminal没有。
对于xterm,它是X资源,例如
XTerm*titeInhibit: true
程序特定的配置
某些程序具有配置文件来配置它们发送的控制序列/ terminfo命令。例如
$ LESS=X less foo
配置less
为不清除/还原屏幕。
因为vim
你可以包括类似
set t_ti= t_te=
在你里面~/.vimrc
。
我没有找到如何配置顶部行为的选项-默认情况下,它不发送还原屏幕。