我不确定这是否重复,但是我不知道要查找什么,因为我不知道这种现象的名称。
基本上,只要我使用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
。
我对为什么会发生这些行为感兴趣,但是我对将其更改为更理想的行为的方法 更 感兴趣。
有没有办法使vim
&less
在较旧/功能较弱的计算机上的行为更像较新的计算机上的行为?另外,有没有办法使Git Bash
文件回滚而不是空白终端?
奖励
:有没有办法使more
行为更像是less
在较新的计算机上?还是这仅仅是more
和之间的区别less
?想一想,less
能力较弱的计算机上是否真的有可能more
?
描述的行为是xterm样式的 备用屏幕 。有两种情况:
普通/备用屏幕的大小相同:终端的可见部分 忽略
了回滚区域。您可以使用鼠标查看回滚。如果在切换到备用屏幕的同时执行此操作,则可以看到当前(备用)屏幕旁边的回滚。切换回去后,例如,当vim退出时,在回滚和当前(正常)屏幕上会显示前几行。两者之间没有标记。
最近在“什么机制允许ViM临时覆盖整个控制台”中 讨论了正常/备用屏幕的某些方面?
Unix(以及Linux和BSD等)上的大多数应用程序都注意TERM
环境变量,它们(或ncurses之类的库)用来从终端数据库中检索信息。原则上,可以TERM
为不同的应用程序分别设置以引发不同的行为(需要注意的是,某些html" target="_blank">应用程序,例如vim都具有内置表来“修复”它们可能会在没有警告的情况下应用的终端数据库)。例如,在POSIX
shell(或诸如bash之类的东西)中运行,您可以输入以下命令来运行vim,并使用两个不同的终端描述进行运行:
TERM=vt100 vim foo.c
TERM=xterm less foo.c
问题内容: 如果我有以下代码: 我会得到的输出 我想做的是代替打印换行符,而是要替换先前的值,并在同一行上用新值覆盖它。 问题答案: 一种方法是使用回车字符返回到行的开头而不前进到下一行: 打印语句末尾的逗号告诉它不要转到下一行。最后的打印语句前进到下一行,因此你的提示不会覆盖你的最终输出。
如何优雅地覆盖antdesign的样式? 我想要把将这个button的border去掉(只是这个button,不影响其他button的样式)。 className or style都不行,Button组件没有提供这两个prop。倒是有一个classNames不知道是干什么的。 在index.css中添加以下规则,倒是可以去除Button上的border但是会影响所有的Button样式。 通过Con
我正在尝试对涉及DStreams的Spark Streaming应用程序执行一些单元测试。 我发现下面这套很有用:StreamingSuiteBase。它包含一个名为testOperation的方法,您可以向该方法传递一个输入、一个要测试的操作和一个预期的输出。它将验证您的预期输出是否与实际输出相匹配。 我面临的问题是,在相等验证期间,我确实得到了完全相同的对象,但包装成不同的集合: 预期:列表(
问题内容: 是否有可能覆盖最后的输出,所以我可以例如可视化数组中的更改或创建一个进度栏? 例如,如果我有这个课: 我必须怎么做才能创建一个简单的进度条,而不是显示在10行中? 问题答案: 这可以在我的特定控制台(Windows)上使用,但不是很便携… 还有课程,但据我所知实际上并没有买多少钱……
问题内容: 我正在尝试Backbone.js,而我正在尝试的事情之一就是调用远程API,因此,据我了解的文档资料,我需要能够覆盖Backbone.sync 。 在文档本身中没有如何执行此操作的示例,并且似乎没有用于Backbone的google组…有人可以指出执行此操作的示例吗? 问题答案: 看看这个带注释的源示例,在该示例中,它们被本地存储替代项覆盖 基本上,Backbone.sync应该是一个
问题内容: 我想要一个目录,但是我不想覆盖任何现有文件,即使它们比复制的文件还旧。我想做到完全非交互式,因为这将是Crontab Bash脚本的一部分。有任何想法吗? 问题答案: 从手册页中获取: 例: