Bagaimana "man" mengembalikan layar ketika saya keluar dari program?

18

Jika saya membuka halaman manual dari program seperti catatau ls, itu mencetak (mungkin bukan kata yang tepat) isi halaman manual dan ketika saya menekan q, itu menunjukkan layar seperti sebelum menjalankan manperintah. Bagaimana pemulihan terjadi? Apa yang menghapus semuanya dan kemudian mencetak isi shell sebelumnya?

Contoh:

[VAR121@Tesla Testing]$  man ls

Keluaran:

LS(1)                                                        User Commands                                                        LS(1)

NAME
       ls - list directory contents

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

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

Ketika saya menekan q, layar kembali ke tampilan default kerang, seperti prompt yang ditunjukkan di bawah ini.

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

Bagaimana layar dipulihkan?

VAR121
sumber

Jawaban:

19

"Kliring" dan "memulihkan" layar sebenarnya fungsi dari emulator terminal Anda gunakan ( xterm, gnome-terminal, konsole, screen).

Secara default, pager yang mandigunakan adalah less.

Dari 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.

Ketika lessdipanggil, layar alts diluncurkan oleh terminal emulator untuk menampilkan isi halaman manual. Saat lesskeluar, layar alts hancur dan terminal menampilkan apa yang disimpan dalam buffer.

Ada jawaban di sini yang membahas hal ini lebih lanjut dan bagaimana menjaga program seperti lessdari meluncurkan layar alts dan dengan demikian membersihkan layar saat keluar. Singkatnya, Anda bisa mendefinisikan variabel lingkungan sehingga lesstidak meluncurkan layar altscreen pada permintaan. Jika Anda menggunakan bash, letakkan ini di ~ / .bashrc:

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

George M
sumber
1
Cerita yang sama vijuga?
VAR121
3
vim menghormati layar alts di emulator terminal Anda. Anda dapat menambahkan sesuatu seperti ini ke ~ / .vimrc - "set t_ti = t_te =" Anda untuk mengubah kapabilitas terminal yang digunakan vim.
George M