如果我这样做了:

$ less file


,然后按q退出less,我仍然看到与less仍在运行时在屏幕上看到的文本相同的文本。

但是,如果我这样做了

$ vim file


:q,我的终端被清空了。

退出后我的终端的屏幕截图lessvim



我能以某种方式防止这种情况吗?这仅在我的Linux系统上。我的FreeBSD系统实际上按预期运行(使用相同的软件/设置,TERM均为xterm-colorvim -u NONE没什么区别。)

我想拥有的示例:



#1 楼

默认情况下,VIM在终止时会将使用选项t_te配置的字符串发送到托管终端,以告知其清除屏幕。为避免这种情况,请不要向终端发送任何内容,并避免屏幕清除。请参阅:set t_te=表格,了解有关终端功能的更多信息。

#2 楼

当您使用xterm时,可以使用它的主屏幕缓冲区和备用屏幕缓冲区进行屏幕交换,如我的.vimrc中的本节所述。

文本,它是转义字符,使用Ctrl + v后跟Esc键将其插入。这些vim命令添加了Linux terminfo条目中可能缺少的相关命令。更多信息,请参见

if &term == "linux"
    set t_ti=^[[?1049h
    set t_te=^[[?1049l
endif                                                       


评论


嗯,似乎还是什么都没做?就像我使用set t_te =一样工作,但是我认为它应该做得更多?

–马丁·图尔诺伊(Martin Tournoij)
2015年2月5日在16:27