perintah 'kurang' membersihkan layar saat keluar - bagaimana cara mematikannya?

79

Bagaimana cara memaksa lessprogram untuk tidak menghapus layar saat keluar?

Saya ingin berperilaku seperti git logperintah:

  • ia meninggalkan halaman yang baru dilihat di layar saat keluar
  • itu tidak keluar lessbahkan jika kontennya cocok pada satu layar (coba git log -1)

Ada ide? Saya belum menemukan lessopsi yang sesuai atau variabel env dalam manual, saya menduga itu ditetapkan melalui beberapa variabel env.

Wojciech Kaczmarek
sumber
Agaknya Anda membutuhkan aspek pengguliran yang kurang, jadi moretidak akan cocok?
Svend

Jawaban:

95

Untuk mencegah lessdari menghapus layar saat keluar, gunakan -X.

Dari halaman manual:

-X atau --no-init

Menonaktifkan pengiriman inisialisasi termcap dan deinitialisasi ke terminal. Ini kadang-kadang diinginkan jika string deinitialization melakukan sesuatu yang tidak perlu, seperti membersihkan layar.

Adapun kurang keluar jika konten cocok pada satu layar, itu opsi -F:

-F atau --quit-if-one-screen

Lebih sedikit penyebab untuk keluar secara otomatis jika seluruh file dapat ditampilkan di layar pertama.

-Fbukan standarnya, jadi sepertinya sudah diatur sebelumnya untuk Anda. Periksa env var LESS.

sleske
sumber
Luar biasa! -X adalah apa yang ada dalam pikiran saya.
Wojciech Kaczmarek
7
Ini sangat menjengkelkan jika Anda tahu tentang -Ftetapi tidak -X, karena kemudian pindah ke sistem yang me-reset layar di init akan membuat file pendek tidak muncul, tanpa alasan yang jelas. Ini menggigit saya ackketika saya mencoba untuk mengambil ACK_PAGER='less -RF'pengaturan saya ke Mac. Terima kasih banyak!
markpasc
@markpasc: Terima kasih telah menunjukkannya. Saya tidak akan menyadari bahwa kombinasi ini akan menyebabkan efek ini, tetapi sekarang sudah jelas.
sleske
7
Ini sangat berguna untuk pager man, sehingga halaman manual tidak hilang segera setelah Anda berhenti dengan kunci 'q'. Artinya, Anda menggulir ke posisi di halaman manual yang Anda hanya tertarik untuk menghilang ketika Anda keluar dari pager yang kurang untuk menggunakan info. Jadi, saya menambahkan: export MANPAGER='less -s -X -F'ke .bashrc saya agar info halaman manual tetap tampil di layar saat saya berhenti, jadi saya benar-benar dapat menggunakannya daripada harus mengingatnya.
Michael Goldshteyn
2
Agak menyebalkan bahwa Anda harus memutuskan kapan Anda mulai lessbagaimana itu harus berperilaku ketika Anda akan keluar.
Michael Burr
17

Jika Anda ingin salah satu opsi baris perintah selalu default, Anda dapat menambahkan .profile atau .bashrc variabel lingkungan KURANG Anda. Sebagai contoh:

export LESS="-XF"

akan selalu menerapkan -X -F setiap kali kurang dijalankan dari sesi login itu.

Kadang-kadang perintah alias (bahkan secara default di distribusi tertentu). Untuk memeriksa ini, ketik

alias

tanpa argumen untuk melihat apakah ada alias dengan opsi yang tidak Anda inginkan. Untuk menjalankan perintah aktual di $ PATH Anda alih-alih alias, cukup prakata dengan back-slash:

\less

Untuk melihat apakah variabel lingkungan KURANG diatur di lingkungan Anda dan memengaruhi perilaku:

echo $LESS
Derek Douville
sumber
2
Bahkan, saya menambahkan export LESS="-XFR"agar warna lessjuga terlihat.
dotancohen
2
Terima kasih untuk itu! -XFsendiri melanggar output git diff, dan -XFRmendapatkan yang terbaik dari kedua dunia - tidak ada layar-kliring, tetapi git diffoutput berwarna .
Giles Thomas
1

Atau cukup atur di global git config Anda:

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

Dengan cara ini alat lain tidak terpengaruh (yang saya suka).

Lester Cheung
sumber