Gnome 终端,“less”在光标位置打开文件,而不是在终端顶部

Gnome 终端,“less”在光标位置打开文件,而不是在终端顶部

如果我尝试用 打开一个文件less,它的内容从光标位置开始,而不是从屏幕顶部开始。

截屏

这只发生在 gnome-terminal 中,例如在 Terminator 中一切正常。我该如何修复它?

答案1

正如 egmont 所说,less应该能够定位光标,而且确实有办法这样做。根据less手册页:

选项也可以从环境变量“LESS”中获取。例如,为了避免每次调用 less 时都输入“less -options ...”,您可以告诉 csh:

setenv LESS “-options”

或者如果你使用 sh:

LESS="-options";导出LESS

因此,为了让less光标位于顶部重新绘制屏幕,​​请执行以下操作

echo   'LESS="-c"; export LESS' >> ~/.bashrc

-c选项,代表“清除屏幕”,将less自动附加到每个,甚至可以在 TTY 中工作,清除屏幕并重新定位光标

答案2

gnome-terminal两者terminator都依赖于vte小部件进行终端仿真,尽管terminator使用的是古老的(基于 gtk2)版本。更准确地说,terminator使用vte版本 0.28.2(在 Ubuntu 14.04 和 16.06 中),而在 Ubuntu 14.04 中gnome-terminal使用vte版本 0.34.9,在 Ubuntu 16.04 中使用版本 0.42.5。

与大多数软件一样,新版本应该更加稳定、功能丰富、错误更少(尽管肯定会时不时地出现新的错误、回归、人们不喜欢的更改等)。vte在过去 3 年中确实收到了大量的更改(修复),包括这个。

vte旨在xterm将其用作模拟行为的参考(除非它发现有充分的理由偏离,这种情况很少发生)。在这种情况下,我们没有发现偏离的理由(并且我们可能有一个有效的错误报告,关于在vte切换到备用屏幕时光标位置没有按预期工作),所以我们将其修复vte为像 一样的行为xterm

换句话说,Ubuntu 14.04 的gnome-terminal,以及 14.04 和 16.04 都terminator存在问题,假设我们接受正确的行为是由 定义的xterm。版本terminator远远落后vte,当他们最终发布基于 gtk3 的版本时,将会收到这个修复程序(以及许多其他修复程序)。

我明白您不喜欢 的新行为less(实际上我也不喜欢,我更喜欢它意外地与旧版 配合使用的方式),但是,故意破坏以实现以前的行为vte绝对是一种错误的方法。相反,应该能够将光标定位在屏幕顶部。如果当前的行为真的让您感到困扰,我建议您针对 提交错误报告/功能请求。vtelessless

相关内容