web-dev-qa-db-ja.com

終了時に画面をクリアする 'less'コマンド-スイッチをオフにする方法は?

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

git logコマンドのように動作させたい:

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

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

82

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

マンページから:

-Xまたは--no-init

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

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

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

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

ただし、-Fはデフォルトではないため、どこかで事前設定されている可能性があります。 env var LESSを確認してください。

99
sleske

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

export LESS="-XF"

そのログインセッションからlessが実行されるときは常に-X -Fを常に適用します。

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

alias

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

\less

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

echo $LESS
19
Derek Douville

または、グローバルgit構成で設定するだけです。

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

このように、他のツールは影響を受けません(私が好きです)。

3
Lester Cheung