如何不覆盖以前的terminal内容

如何不覆盖以前的terminal内容,第1张

概述如何不覆盖以前的terminal内容

我不确定这是否是重复的,但是我不知道要search什么,因为我不知道这个现象的名称。

基本上,每当我在某些计算机上使用vim和less ,以前的terminal内容被当前文件的缓冲区覆盖(我认为)。 如果我滚动滚动条而不是当前程序的命令,我可以看到以前的terminal内容,但是一些以前的行已经被当前的程序覆盖了。 看起来像vim这样的缓冲区(我认为)有多less行,terminal有多less条线被覆盖了。 当我从vim / less退出时,这些线条仍然被覆盖,尽pipe它们出现在历史中,当我通过历史logging“回”时。

但是,在其他电脑上,发生了一些不同的事情。 当我使用vim或less ,如果我上下滚动,我看不到terminal的前面几行。 事实上,在大多数发生这种现象的计算机上,如果我用鼠标向下滚动,而less回滚到当前缓冲区中的文件,就好像我按了Ctrl-E / Ctrl-Y 。 当我退出vim / less ,根本看不到文件,我只能看到terminal的前一个内容,就像我在打开文件之前所做的一样。

每当我用得more ,不pipe用什么电脑,都会出现前一种现象,但我用得不多,因为我喜欢各方面都不太好,所以我没有testing它的极限。

手动标记内存页面为“脏”

是帧数=页数(linux)?

用日历和分页htaccess获得价值

页面表总是在内存中? 页表会被换出吗?

在内核空间中,如何获得与ext4格式磁盘上的文件对应的物理地址

我经历了前一种现象的计算机/虚拟terminal似乎是较旧的计算机和/或具有较小能力和规格的计算机,这是合乎情理的,因为大多数人可能想要后者,但是可能难以完成,并且需要更多的处理能力和记忆。

以前有过的电脑是:我工作的2台RedHat ,可能是从2000年底/ 2010年初期开始的,我是用Penguinet的windows 7电脑Penguinet ; 带有Terminal Rex IDE的AndroID手机/平板电脑,“安装系统” 在大多数的AndroIDterminal应用程序,我不能得到vim , less ,甚至vi ,但我得到more 。 当我用Git Bash使用vagrant时,默认的msys TERM值,terminal都搞砸了,我经历了大部分相同的行为,但更糟的是。 当我将TERM更改为cygwin或xterm ,效果更好。

对于我来说更理想的计算机是:我最新的带有Ubuntu 15.04笔记本电脑(是的,预装linux ); 在过去的几年中,我在windows 8笔记本电脑上安装的任何linux虚拟机,但是我只有最新的版本,所以我不知道这个行为有多大。 Git Bash在我的windows 8笔记本电脑上。 当我用鼠标滚动时, Git Bash没有通过文件回滚,而是通过一个空的terminal,但这可能是因为我的vimrc / lessrc的设置。 当我在Git Bash退出时,它仍然显示了所有以前的行,而不是文件。

这些计算机大部分都使用bash ,但是我在最新的ubuntu电脑上安装和使用fish时仍然遇到了新的现象,即使我把它ubuntu默认的shell,我也不相信Git Bash在技​​术上是bash ,尽pipe它可能。 我相信Terminal Rex应用程序在安装到系统时使用了bash ,但是当我使用其他terminal应用程序检查SHELL环境variables,并且在没有安装系统的情况下使用Terminal Rex时,它将报告为sh 。

我感兴趣的是为什么会出现这些行为,但我更感兴趣的是将其改变为更理想的行为。 有没有一种方法可以使vim & less在较老的/function较弱的计算机上的行为更像新的行为? 另外,有没有办法使Git Bash滚动回来的文件,而不是空白的terminal?

奖金 :有没有办法让更新的计算机上的行为less ? 或者这只是多less的区别? 想想看,能力不强的电脑实际上可能less吗?

一个大于2GB的PE文件

如何防止一个程序/进程分页?

在MIPS(linux)上获取指向当前转换表的指针

linux内核可以使用可分页(可交换)内存作为自己的缓冲区吗?

为什么物理地址在运行中是相同的?

所描述的行为是xterm样式的替代屏幕 。 有两种情况:

当它被使用时,当你运行像vim这样的全屏程序时,终端切换到备用屏幕。

当不使用时,当运行全屏程序时终端继续在正常屏幕上。

正常/替代屏幕大小相同:终端的可见部分忽略了回滚区域。 你可以看到使用鼠标的回滚。 如果在切换到备用屏幕时这样做,则可以看到当前(备用)屏幕旁边的回卷。 切换回来之后,例如,当vim退出时,先前的行显示在整个回滚和当前(正常)屏幕中。 两者之间没有标记。

正常/备用屏幕的一些方面最近讨论了什么机制允许ViM暂时覆盖整个控制台?

Unix(以及linux和BSD等)上的大多数应用程序都注意TERM环境变量,它们(或者诸如ncurses之类的库)用来从终端数据库检索信息。 原则上,可以为不同的应用程序单独设置TERM以引发不同的行为(有些应用程序(例如vim)有内置的表来“修复”它们可能会应用的终端数据库而没有警告)。 例如,运行在一个POSIX shell(或类似bash的东西)中,你可以键入这个命令来运行vim,而不是使用两个不同的终端描述:

TERM=vt100 vim foo.c TERM=xterm less foo.c

总结

以上是内存溢出为你收集整理的如何不覆盖以前的terminal内容全部内容,希望文章能够帮你解决如何不覆盖以前的terminal内容所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1268398.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存