退出时“ less”命令清除屏幕-如何将其关闭?


79

如何强制less程序退出时不清除屏幕?

我希望它的行为类似于git log命令:

  • 退出时,它会将最近看到的页面留在屏幕上
  • less即使内容在一个屏幕上也不会退出(尝试git log -1

有任何想法吗?我没有less在手册中找到任何合适的选项或env变量,不过我怀疑它是通过一些env变量设置的。


大概您需要较少的滚动方面,所以more不合适吗?
Svend

Answers:


95

为防止less退出时清除屏幕,请使用-X

从联机帮助页:

-X或--no-init

禁用将termcap初始化和取消初始化字符串发送到终端。如果取消初始化字符串做了不必要的操作(如清除屏幕),有时这是理想的。

至于如果内容适合在一个屏幕上退出的可能性较小,则可以选择-F

-F或--quit-if-one-screen

如果可以在第一个屏幕上显示整个文件,则导致更少的自动退出。

-F虽然不是默认值,所以可能已为您预设了某个位置。检查env var LESS


优秀的!-X是我的想法。
Wojciech Kaczmarek

7
如果您知道-F但不了解-X,这将尤其烦人,因为随后转移到在init上重置屏幕的系统将导致短文件根本没有出现,没有明显的原因。ack当我尝试将ACK_PAGER='less -RF'设置带到Mac 时,这让我感到有些困惑。谢谢一群!
markpasc 2010年

@markpasc:感谢您指出这一点。我不会意识到这种组合会导致这种效果,但是现在很明显。
sleske

7
这对于手册页寻呼机特别有用,这样,一旦您使用'q'键少退出时,手册页就不会消失。也就是说,您滚动到手册页中您感兴趣的位置,仅当退出较少的寻呼机以便使用该信息时,该位置才会消失。因此,我export MANPAGER='less -s -X -F'在我的.bashrc中添加了:当我减少退出时,将手册页信息显示在屏幕上,以便我可以实际使用它,而不必记住它。
Michael Goldshteyn

2
有点糟糕,您必须决定何时开始less,退出时它必须如何表现。
Michael Burr 2014年

17

如果希望任何命令行选项始终始终是默认选项,则可以将LESS环境变量添加到.profile或.bashrc中。例如:

export LESS="-XF"

只要从该登录会话运行较少的命令,它将始终应用-X -F。

有时命令是别名的(即使在某些发行版中也是默认的)。要检查这一点,请键入

alias

没有参数,以查看是否别名使用了您不需要的选项。要在$ PATH中运行实际命令而不是别名,只需在其前面加上反斜杠即可:

\less

要查看您的环境中是否设置了LESS环境变量并影响行为:

echo $LESS

2
实际上,我添加export LESS="-XFR"了颜色,以便颜色也能显示出来less
dotancohen 2014年

2
感谢那! -XF它本身就打破了的输出git diff,并-XFR获得了两全其美的效果-没有屏幕清晰,但彩色git diff输出。
吉尔斯·托马斯

1

或者只是在全局git配置中进行设置:

git config --global core.pager 'less -FX'

这样,其他工具就不会受到影响(我喜欢)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.