終了時に画面をクリアする「less」コマンド-オフにする方法


79

lessプログラムが終了時に画面をクリアしないようにするにはどうすればよいですか?

私はそれがgit logコマンドのように振る舞うことを望みます:

  • 終了時に、最近見たページを画面に残します
  • lessコンテンツが1つの画面に収まる場合でも終了しません(試してみてくださいgit log -1

何か案は?lessマニュアルに適切なオプションもenv変数も見つかりませんでしたが、いくつかのenv変数を介して設定されていると思われます。


おそらくスクロールの必要性が少ないので、more適切ではないでしょうか?
スベンド

回答:


95

less終了時に画面がクリアされないようにするには、を使用します-X

マンページから:

-Xまたは--no-init

端末へのtermcap初期化および初期化解除文字列の送信を無効にします。これは、画面のクリアなど、初期化解除文字列が不要な処理を行う場合に望ましいことがあります。

コンテンツが1つの画面に収まる場合の終了を少なくするには、それがオプション-Fです。

-Fまたは--quit-if-one-screen

ファイル全体を最初の画面に表示できる場合、lessは自動的に終了します。

-Fただし、デフォルトではないため、おそらくどこかで事前設定されています。env varを確認してくださいLESS


優れた!-Xは私が念頭に置いていたものです。
ヴォイチェフカチュマレク

7
あなたが知っている場合、これは特に面倒です-Fが、ではない-Xとして、その後initの画面は、短いファイルは、単純に明らかな理由もなく、表示されないようになりますリセットシステムに移動し、。これackは、私のACK_PAGER='less -RF'設定をMacに持ち込もうとしたときのことでした。本当にありがとう!
markpasc

@markpasc:それを指摘してくれてありがとう。この組み合わせがこの効果を引き起こすとは思いませんでしたが、今では明らかです。
sleske

7
これはmanページャーにとって特に便利です。そのため、 'q'キーで終了しなくてもmanページが消えることはありません。つまり、情報を使用するために以下のページャーを終了したときに消えるだけの目的のマニュアルページの位置までスクロールします。そこで、次のように追加しました:export MANPAGER='less -s -X -F'.bashrcに、終了する前にmanページの情報を画面に表示し、暗記する代わりに実際に使用できるようにします。
マイケルゴールドシュテイン

2
less終了するときにどのように動作する必要があるかを開始するときに決定する必要があるのはちょっと残念です。
マイケルバー14年

17

コマンドラインオプションのいずれかを常にデフォルトにする場合は、.profileまたは.bashrcにLESS環境変数を追加できます。例えば:

export LESS="-XF"

そのログインセッションからlessが実行されるたびに、常に-X -Fが適用されます。

場合によっては、コマンドはエイリアスになります(特定のディストリビューションではデフォルトでも)。これを確認するには、次を入力します

alias

引数なしで、不要なオプションでエイリアス化されているかどうかを確認します。エイリアスではなく、$ PATHで実際のコマンドを実行するには、バックスラッシュで始めます:

\less

環境にLESS環境変数が設定され、動作に影響を与えているかどうかを確認するには:

echo $LESS

2
実際、export LESS="-XFR"色が透けlessて見えるように追加します。
dotancohen

2
それをありがとう! -XF自分自身での出力を壊しませんでしたgit diffし、-XFR両方の長所を取得します-何の画面クリアが、色のgit diff出力を。
ジャイルズトーマス

1

または、グローバルgit configで設定するだけです:

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

このようにして、他のツールは影響を受けません(私は気に入っています)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.