Màn hình xóa lệnh 'bớt' khi thoát - làm thế nào để tắt nó?


79

Làm thế nào để buộc lesschương trình không xóa màn hình khi thoát?

Tôi muốn nó hoạt động như git loglệnh:

  • nó rời khỏi trang được nhìn thấy gần đây trên màn hình khi thoát
  • nó không thoát lessngay cả khi nội dung vừa với một màn hình (thử git log -1)

Có ý kiến ​​gì không? Tôi không tìm thấy bất kỳ lesstùy chọn phù hợp cũng như các biến env trong sách hướng dẫn, tôi nghi ngờ nó được đặt thông qua một số biến env.


Có lẽ bạn cần khía cạnh cuộn ít hơn, vì vậy moresẽ không phù hợp?
Svend

Câu trả lời:


95

Để ngăn không cho lessxóa màn hình khi thoát, sử dụng -X.

Từ trang hướng dẫn:

-X hoặc --no-init

Vô hiệu hóa việc gửi các chuỗi khởi tạo termcap và khử khử cho thiết bị đầu cuối. Điều này đôi khi là mong muốn nếu chuỗi khử khử làm một việc không cần thiết, như xóa màn hình.

Để thoát ít hơn nếu nội dung vừa trên một màn hình, đó là tùy chọn -F:

-F hoặc --quito-if-one-screen

Nguyên nhân ít hơn để tự động thoát nếu toàn bộ tập tin có thể được hiển thị trên màn hình đầu tiên.

-Fmặc dù không phải là mặc định, vì vậy nó có thể được cài sẵn ở đâu đó cho bạn. Kiểm tra var env LESS.


Xuất sắc! -X là những gì tôi đã nghĩ trong đầu.
Wojciech Kaczmarek

7
Điều này đặc biệt khó chịu nếu bạn biết -Fnhưng không -X, vì sau đó chuyển sang một hệ thống đặt lại màn hình trên init sẽ khiến các tệp ngắn đơn giản không xuất hiện, không có lý do rõ ràng. Điều này làm tôi khó chịu ackkhi tôi cố gắng đưa ACK_PAGER='less -RF'thiết lập của mình lên Mac. Cảm ơn nhiều!
markpasc

@markpasc: Cảm ơn bạn đã chỉ ra điều đó. Tôi sẽ không nhận ra rằng sự kết hợp này sẽ gây ra hiệu ứng này, nhưng bây giờ thì rõ ràng.
sleske

7
Điều này đặc biệt hữu ích cho máy nhắn tin của người đàn ông, để các trang người đàn ông không biến mất ngay khi bạn thoát ít hơn với phím 'q'. Đó là, bạn cuộn đến vị trí trong một trang người đàn ông mà bạn quan tâm chỉ để nó biến mất khi bạn thoát khỏi máy nhắn tin ít hơn để sử dụng thông tin. Vì vậy, tôi đã thêm: export MANPAGER='less -s -X -F'vào .bashrc của tôi để cập nhật thông tin trang man trên màn hình khi tôi thoát ít hơn, để tôi thực sự có thể sử dụng nó thay vì phải ghi nhớ nó.
Michael Goldshteyn

2
Thật tệ khi bạn phải quyết định khi nào bạn bắt đầu lessphải cư xử thế nào khi bạn định thoát ra.
Michael Burr

17

Nếu bạn muốn bất kỳ tùy chọn dòng lệnh nào luôn được mặc định, bạn có thể thêm vào .profile hoặc .bashrc biến môi trường LESS. Ví dụ:

export LESS="-XF"

sẽ luôn áp dụng -X -F bất cứ khi nào ít hơn được chạy từ phiên đăng nhập đó.

Đôi khi các lệnh được đặt bí danh (thậm chí theo mặc định trong các bản phân phối nhất định). Để kiểm tra điều này, gõ

alias

không có đối số để xem liệu nó có bí danh với các tùy chọn mà bạn không muốn. Để chạy lệnh thực tế trong $ PATH của bạn thay vì bí danh, chỉ cần mở đầu nó bằng dấu gạch chéo ngược:

\less

Để xem liệu biến môi trường LESS được đặt trong môi trường của bạn và ảnh hưởng đến hành vi:

echo $LESS

2
Trong thực tế, tôi thêm export LESS="-XFR"để màu sắc hiển thị lesslà tốt.
dotancohen

2
Cảm ơn vì điều đó! -XFtự nó đã phá vỡ đầu ra git diff-XFRđạt được kết quả tốt nhất của cả hai thế giới - không có màn hình rõ ràng, nhưng git diffđầu ra có màu .
Giles Thomas

1

Hoặc chỉ cần đặt nó trong cấu hình git toàn cầu của bạn:

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

Bằng cách này, các công cụ khác không bị ảnh hưởng (mà tôi thích).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.