題 退出時“減少”命令清除屏幕 - 如何將其關閉?


如何強迫 less 程序在退出時不清除屏幕?

我希望它表現得像 git log 命令:

  • 退出後,它會在屏幕上顯示最近看到的頁面
  • 它沒有退出 less 即使內容適合一個屏幕(嘗試 git log -1

有任何想法嗎?我沒有找到任何合適的 less 手冊中的選項和env變量,我懷疑它是通過一些env變量設置的。


73
2018-02-09 11:21


起源


據推測,你需要更少的滾動方面,所以 more 不適合? - Svend


答案:


阻止 less 從退出時清除屏幕,使用 -X

從聯機幫助頁:

-X或--no-init

禁用發送termcap初始化和取消初始化   字符串到終端。如果是,這有時是可取的   deinitialization字符串做了一些不必要的事情,比如清除   屏幕。

如果內容適合一個屏幕,則可以減少退出,這是可選的 -F

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

如果整個文件可以自動退出導致更少   顯示在第一個屏幕上。

-F 雖然不是默認設置,所以它可能會預設給你。檢查env var LESS


89
2018-02-09 11:59



優秀! -X就是我的想法。 - Wojciech Kaczmarek
如果你知道的話,這尤其令人討厭 -F 但不是 -X因為然後移動到一個在init上重置屏幕的系統將使得短文件根本沒有出現,原因沒有明顯。這讓我感到高興 ack 當我試圖接受我的 ACK_PAGER='less -RF' 設置為Mac。謝謝你! - markpasc
@markpasc:謝謝你指出這一點。我不會意識到這種組合會導致這種效果,但現在很明顯。 - sleske
這對於手動尋呼機特別有用,因此只要用“q”鍵退出,手冊頁就不會消失。也就是說,滾動到您感興趣的手冊頁中的位置,只有當您退出less pager以便使用該信息時它才會消失。所以,我補充說: export MANPAGER='less -s -X -F' 到我的.bashrc,當我退出時,將屏幕上的手冊頁信息保留在屏幕上,以便我可以實際使用它而不必記住它。 - Michael Goldshteyn
有點糟糕,你必須決定何時開始 less 當你要退出時它必須如何表現。 - Michael Burr


如果您希望任何命令行選項始終為默認選項,則可以將.profile或.bashrc添加到LESS環境變量中。例如:

export LESS="-XF"

每當從該登錄會話運行較少時,將始終應用-X -F。

有時命令是別名的(即使在某些發行版中默認也是如此)。要檢查此項,請鍵入

alias

沒有參數,看看它是否有你不想要的選項別名。要在$ PATH中運行實際命令而不是別名,只需在其後面加上反斜杠:

\less

要查看環境中是否設置了LESS環境變量並影響行為:

echo $LESS

15
2017-07-11 19:11



事實上,我補充說 export LESS="-XFR" 這樣顏色就顯示出來了 less同樣。 - dotancohen
感謝那! -XF 本身就打破了輸出 git diff,和 -XFR 獲得兩全其美 - 沒有屏幕清除,但有色 git diff 輸出。 - Giles Thomas