屏幕:如何打开备用屏幕?
在终端中工作时,我看到了最后一个Shell命令执行输出的历史记录。如果运行vim,我会看到全屏打开的文件。退出vim时,我可以再次看到最后一个shell命令的历史记录。
但是,当我从屏幕上使用vim时。我在退出vim时看到的是刚刚编辑的文件的足迹,而不是最后一个shell命令的历史记录。
我用了:
- terminal.app和iterm2.app
- 尝试将xterm切换到xterm-256color(在iterm2.app中)
- 选中和取消选中“在存在应用程序状态栏时将行保存到回滚”和“在备用屏幕模式下将行保存到回滚”(在iterm2中)
- 在.screenrc中添加termcapinfo xterm ti @:te @(尽管它应该是相反问题的解决方案,但为什么不尝试)
- sshing到Linux机器并尝试在其中使用gnu-screen
到目前为止,我还没有得到想要的行为。
回答:
我已经忘记screen
了默认情况下禁用备用屏幕支持的功能。
添加altscreen
on到您$HOME/.screenrc
的启用它。这可能就是您要做的全部;所有关于与餐间$TERM
,$TERMCAP
以及$TERMINFO
可能是不必要的。无论如何,我将在此处保留其余答案。
我已经拥有了.screenrc
这么久,以至于让我无所适从。
要在当前会话中启用此功能,请键入您的screen
转义字符(Cntrl-A
默认情况下),然后输入:altscreen on
Enter
。
没有这个,screen
即使在terminfo或termcap中定义了转义序列,也不会响应。
vim
(和less
,以及大多数其他基于curses的全屏程序)使用terminfo条目为您的终端定义的smcup
和rmcup
字符串。(在较旧的termcap系统中,它们分别称为ti
和te
)。
smcup
切换到备用屏幕,然后rmcup
切换回主屏幕。
如果您的terminfo条目没有这些字符串,则程序将无法执行这些操作。
屏幕命令默认情况下将设置$TERM
为"screen"
。显然,“屏幕” terminfo条目没有smcup
和rmcup
。
如果您想入侵terminfo条目,则可以修改现有信息,以便在“屏幕”中添加smcup
和rmcup
。您将需要infocmp
命令将terminfo转换为文本,并将tic
其转换回terminfo使用的二进制形式。
一个更简单的解决方案是将$TERM
环境变量设置为调用screen
命令之前的环境变量。如今,几乎所有终端仿真器都基于旧的DEC
VT100,因此它们应具有足够的兼容性。
在我的系统上,例如,当我登录时,我拥有TERM=xterm
; MacOS上可能还有其他内容。在一个screen
会话中,默认情况下,我将具有:
$ echo $TERM screen
我可以将其更改为xterm
这样:
$ export TERM=xterm
(再次,用$TERM
系统上的任何内容替换“ xterm” 。)
您也可以添加
term xterm
给你$HOME/.screenrc
。实际上,screen
有许多选项可用于调整termcap / terminfo设置。man
screen并搜索“ terminfo”以获取详细信息。
以上是 屏幕:如何打开备用屏幕? 的全部内容, 来源链接: utcz.com/qa/405140.html