「より少なく」切り捨てられた行を作成し、<1画面以降でも終了し続ける方法はありますか?

「より少なく」切り捨てられた行を作成し、<1画面以降でも終了し続ける方法はありますか?

less多くの人と同様に、私はデフォルトでoptionsと一緒に出力(diff、logなどの場合)をgitに送るgitを使います-FRSX。オーバーライドされたオプションで呼び出されるようにページャを設定して、.gitconfigでこれらのオプションをオーバーライドできます。たとえば、

  pager=less -F -+S

less1画面未満の出力後に終了するように設定した場合いいえ行を切り取ると(たとえば、less -F -+S上記の例のように)、コマンドを実行した後に自動的にコマンドプロンプトに戻りますlog

しかし、もし私がする行を切り取ってください(つまり、単に使用less -F)。すべての行が切り捨てられます。、それが終わったらいいえすぐに終了しますが、印刷しENDてを押すまで待ち​​ますQ。これは少し面倒です。

(問題の行動はいいえ私の端末よりも行が狭いので、行が切り捨てられないと、これが発生します。問題は元々発生しませんでした尋ねる行を切り捨てますが、それが実際に実行される操作です。 )

less行を切って1画面未満で自動的に終了する方法はありますか?

答え1

まあ…それはページ付けの概念に反しています…そうですか? :-)

しかし、あなたの質問に答えると、そうではないと確信しています。 Lessのソースコードは次のとおりです。

/*
 * The char won't fit in the line; the line
 * is too long to print in the screen width.
 * End the line here.
 */
if (chopline || hshift > 0)  <--- you have chop lines (-S)
{
        ...
        quit_if_one_screen = FALSE;    <--- this resets -F
}

申し訳ありません:-)

答え2

行が切り捨てられるとless効果的に無効になるため、この問題を単独で解決することはできません。代替案は行を切り取ることです--quit-if-one-screenchop-long-linesless今後少ない人に渡してください。このような:

pager = "cut -c -512 | less --quit-if-one-screen"

または、端末の幅に応じて変更するには、次の手順を実行します。

pager = "cut -c -$COLUMNS | less --quit-if-one-screen"

関連情報