如何不覆盖以前的终端内容
我不确定这是否重复,但是我不知道要查找什么,因为我不知道这种现象的名称。
基本上,只要我使用vim
和less
某些计算机上,以前的终端内容由当前文件(我认为)的缓冲液覆盖。如果我使用滚动条而不是当前程序的命令向后滚动,则可以看到以前的终端内容,但是当前程序已覆盖了前面的某些行。好像有很多行经过(例如,)的缓冲区vim
是覆盖终端的前几行。当我退出vim
/时less
,这些行仍然被覆盖,尽管它们显示在历史记录中,并且当我按一下up
以“浏览”历史记录时。
但是,在其他计算机上,会发生完全不同的事情。当我使用vim
或时less
,如果上下滚动,则看不到终端的前几行。实际上,在大多数发生这种现象的计算机上,如果我用鼠标向后滚动,vim
然后less
在当前缓冲区中的文件中向后滚动,就像按Ctrl-E
/一样Ctrl-Y
。当我退出vim
/时less
,根本看不到文件,只能看到终端的先前内容,就像打开文件之前所做的一样。
无论何时使用more
,无论我使用什么计算机,都会出现前一种现象,但是我使用的more
并不多,因为我less
在各个方面都比较喜欢,所以我没有测试其限制。
我经历过前一种现象的计算机/虚拟终端似乎是较旧的计算机和/或功能和规格较弱的计算机,这很有意义,因为大多数人可能希望使用后者,但是这可能更难实现且需要更多处理能力和记忆。
具有以前经验的计算机是:RedHat
我工作的2个旧计算机,可能来自2000年代末/ 2010年初,我从Windows
7带有Penguinet
;Android
我在“安装系统”中使用Terminal Rex
IDE的手机/平板电脑。在大多数Android
终端应用程序上,我虽然无法获得vim
,less
甚至无法vi
获得more
。当我vagrant
与Git
Bash配合使用时,默认TERM
值为msys
,终端全被搞砸了,我经历了大多数相同的行为,但是更糟。当我更改TERM
为cygwin
或时xterm
,效果更好。
(对我而言)行为更理想的计算机是:我最新的笔记本电脑Ubuntu 15.04
(是的,Linux
预装了cmputer );过去几年中我在Windows
8笔记本电脑上安装的任何Linux VM,但是我只有最新版本,所以我不知道这种行为有多旧。Git Bash
在我的Windows 8笔记本电脑上。Git
Bash当我使用鼠标滚动时没有滚动浏览文件,而是通过空终端滚动浏览文件,但这可能是由于vimrc
/中的设置lessrc
。当我退出时Git
Bash,它仍然显示所有以前的行,而不是文件。
这些计算机中的大多数都在使用bash
,但是即使在我将其设置为默认外壳的情况下,即使在fish
最新的ubuntu
计算机上安装和使用时,我仍然会遇到这种较新的现象,尽管可能确实如此,但我不认为这Git
Bash是技术上的问题bash
。我相信该Terminal
Rex应用程序bash
在安装到系统后会使用,但是当我在SHELL
其他终端应用程序以及未安装系统的Terminal
Rex中检查环境变量时,报告为sh
。
我对为什么会发生这些行为感兴趣,但是我对将其更改为更理想的行为的方法 更 感兴趣。
另外,有没有办法使Git
Bash文件回滚而不是空白终端?
:有没有办法使more
行为更像是less
在较新的计算机上?还是这仅仅是more
和之间的区别less
?想一想,less
能力较弱的计算机上是否真的有可能more
?
回答:
描述的行为是xterm样式的 备用屏幕 。有两种情况:
- 当它 被 使用时,终端切换到 备用 屏幕时运行全屏程序如VIM。
- 如果 不 使用,则在运行全屏程序时终端会在 正常 屏幕中继续运行。
普通/备用屏幕的大小相同:终端的可见部分 忽略
了回滚区域。您可以使用鼠标查看回滚。如果在切换到备用屏幕的同时执行此操作,则可以看到当前(备用)屏幕旁边的回滚。切换回去后,例如,当vim退出时,在回滚和当前(正常)屏幕上会显示前几行。两者之间没有标记。
最近在“什么机制允许ViM临时覆盖整个控制台”中 讨论了正常/备用屏幕的某些方面?
Unix(以及Linux和BSD等)上的大多数应用程序都注意TERM
环境变量,它们(或ncurses之类的库)用来从终端数据库中检索信息。原则上,可以TERM
为不同的应用程序分别设置以引发不同的行为(需要注意的是,某些应用程序,例如vim都具有内置表来“修复”它们可能会在没有警告的情况下应用的终端数据库)。例如,在POSIX
shell(或诸如bash之类的东西)中运行,您可以输入以下命令来运行vim,并使用两个不同的终端描述进行运行:
TERM=vt100 vim foo.cTERM=xterm less foo.c
以上是 如何不覆盖以前的终端内容 的全部内容, 来源链接: utcz.com/qa/415540.html