如何设置bash显示退出后不显示vim文本?

如何设置bash显示退出后不显示vim文本?

我的问题很简单,但我发现很难轻松地构建/解释它。

我用不同的帐户登录到几个 Unix 机器。在 vim 中编辑文本文件时,我看到user1和有两个不同的东西user2

用户1

当我输入 时vim filename,vim 打开并编辑该文件。当我关闭它时,文件中的完整文本消失了,并且我看到了先前存在的终端命令/输出。

用户2

当我输入 时vim filename,vim 打开并编辑该文件。当我关闭它时,我所在时显示屏上存在的文件部分vim仍然显示在显示屏上,并且所有先前的终端显示都会向上滚动。即使文件只有 1 行,退出 vim 后,显示屏也会显示第一行,其余所有内容,~我会在屏幕底部看到命令提示符。

细节

$ bash --version
GNU bash, version 3.2.25(1)-release (x86_64-redhat-linux-gnu)
Copyright (C) 2005 Free Software Foundation, Inc.
$ vim --version
VIM - Vi IMproved 7.0 (2006 May 7, compiled Jun 12 2009 07:08:36)

我比较了vimrc两个用户的文件,并且我知道所有设置,但没有找到与此行为相关的任何设置/配置。

此行为与 shell 配置有关吗?我如何设置这些东西,以便获得user1场景中所示的行为?

我无法轻松描述这一点,也发现很难用谷歌搜索,因为我不知道用什么关键字来寻找这种行为。如果我需要进一步详细说明,请告诉我。

答案1

造成这种行为的原因之一是每个用户的终端设置。

例如:

  • 用户 1 正在使用 TERM=xterm,在这种情况下,当您退出 vim 时,它将清除终端。
  • 用户 2 正在使用 TERM=VT100,在这种情况下,当您退出 vim 时,它不会清除终端。

检查 user1 使用的终端echo $TERM并为 user2 设置相同的终端。对于bash:

术语=xterm;出口期限

答案2

这种行为是唯一让我远离使用的原因screen。它使用“screen”终端并将其更改为“xterm”没有帮助。

altscreen on在 ~/.screenrc 中添加选项解决了这个问题。从屏幕手册:

altscreen on|off

如果设置为打开,则在虚拟终端中启用“备用屏幕”支持,就像在 xterm 中一样。初始设置为“关闭”。

答案3

我已经尝试了所有这些选项,但结果不是我所期望的。!clear将清除整个屏幕并且不会留下早期的 bash 命令。

简单而正确的解决方案是将终端类型字符串设置为,xterm并将终端速度设置38400,38400为连接->数据下腻子设置中的终端详细信息。

保存设置,然后就可以开始了。

答案4

就我而言,两台机器上的 TERM 设置相同,但其中一台机器上的 vim 设置t_te与系统范围的 vimrc 的设置不同。

解决方案可以在这里找到:https://vi.stackexchange.com/questions/432/prevent-vim-from-clearing-the-terminal-after-exit 即,就:set t_te=在你的~/.vimrc.

相关内容