退出程序时,“ man”如何还原屏幕?


18

如果我打开诸如cat或的程序的手册页ls,它会打印(可能不是适当的单词)手册页的内容,当我按时q,它将显示屏幕,就像调用man命令之前一样。恢复如何发生?什么会擦除所有内容,然后打印外壳的先前内容?

例:

[VAR121@Tesla Testing]$  man ls

输出:

LS(1)                                                        User Commands                                                        LS(1)

NAME
       ls - list directory contents

SYNOPSIS
       ls [OPTION]... [FILE]...

 ............

当我按时q,屏幕将返回外壳的默认外观,如下面所示的提示。

[VAR121@Tesla Testing]$  man ls
[VAR121@Tesla Testing]$

屏幕如何还原?

Answers:


19

“清除”和“恢复”的屏幕实际上是终端仿真器的功能使用的是(xtermgnome-terminalkonsolescreen)。

默认情况下,使用的寻呼机manless

man 1 man

   -P  pager
          Specify  which pager to use.  This option overrides the 
          MANPAGER environment variable, which in turn overrides 
          the PAGER variable.  By default, man  uses /usr/bin/less -is.

less被调用时,一个altscreen由终端仿真器启动,以显示人页的内容。当less退出时,altscreen被破坏,终端显示什么保存在缓冲区中。

这里有一个答案它进一步讨论了这一问题,以及如何防止程序less启动altscreen并因此在退出时清除屏幕。简而言之,您可以定义一个环境变量,这样less就不会在调用时启动altscreen。如果您正在使用bash,请将其放在〜/ .bashrc中:

export MANPAGER="/usr/bin/less -r -X -is"


1
同样的故事vi吗?
VAR121 2013年

3
vim会在您的终端仿真器中使用altscreen。您可以在〜/ .vimrc中添加类似的内容-“ set t_ti = t_te =”以更改vim使用的终端功能。
乔治M
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.