ドキュメントの最近の変更では、のデフォルトオプションを削除する別の方法が言及されていますless(「デフォルトオプション」はですFRSX)。
この質問の場合、これは(git 1.8+)になります。
git config --global --replace-all core.pager 'less -+F -+X'
たとえば、Dirk Bester はコメントで提案しています:
export LESS="$LESS -FRXK"
でCtrl-C終了すると色付きの差分が表示されるようにしlessます。
ウィルソンFはコメントと彼の質問で次のように述べています。
lessは水平スクロールをサポートしているので、行が切り取られた場合、lessはquit-if-one-screenを無効にし、ユーザーがテキストを左にスクロールして切り取られた部分を確認できるようにします。
これらの変更は、「常にページャーを使用するgit diff」に示されているように、git 1.8.xですでに表示されていました(コメントを参照)。しかし、ドキュメントは書き直されました(git 1.8.5または1.9の場合、2013年第4四半期)。
Gitコマンドで使用するテキストビューア(「less」など)。
この値は、シェルによって解釈されることを意図しています。
優先順位は次のとおりです。
- の
$GIT_PAGER環境変数、
- その後
core.pager設定、
- その後
$PAGER、
- そして、コンパイル時に選択されたデフォルト(通常は「少ない」)。
場合はLESS、環境変数が設定されていない、Gitはそれを設定しますFRSX
(存在する場合LESS環境変数が設定され、Gitがすべてでそれを変更しません)。
のGitのデフォルト設定を選択的にオーバーライドLESSする場合はcore.pager、たとえばに設定できますless -+S。
これは、最後のコマンドをに変換するGitによってシェルに渡されLESS=FRSX less -+Sます。環境はコマンドにS長い行をチョップするオプションを設定するように指示しますが、コマンド行はデフォルトにリセットして長い行を折り返します。
新しいドキュメントの文言の背後にある理由については、コミット97d01f2aを参照してください。
config:core.pagerドキュメントを書き直します
本文ではcore.pager、GIT_PAGER優先順位の全体像を述べていない。git var(1)のドキュメントからより良い説明を借りてください。
システム全体、グローバル、およびリポジトリごとの構成ファイルを許可するメカニズムの使用は、この特定の変数に限定されません。段落を明確にするために削除してください。
環境変数LESSがGitのデフォルト値に設定される方法と、それを選択的にカスタマイズする方法を説明する部分を書き換えます。
注:コミットb327583(Matthieu Moymoy、2014年4月、git 2.0.x / 2.1、Q3 2014)は、デフォルトでSを削除します。
ポケットベル:デフォルトで$ LESSから 'S'を削除
デフォルトでは、Git はユーザーが設定しなかっ$LESSた-FRSX場合$LESSに設定されていました。フラグが実際にGitのために意味をなす(そして時にはより少ないへ出力Gitのパイプが短いため、およびGitのパイプが出力を着色しているため)。
一方、フラグ(長い行を切り取る)はGitとは関係なく、ユーザーの好みの問題です。Gitはユーザーがデフォルトを変更することを決定するべきではありません。
FRXFXR
SLESS
より具体的にはS、パッチは次のようになるため、フラグはページャー内の信頼できないコードをレビューするユーザーに害を及ぼします。
-old code;
+new good code; [... lots of tabs ...] malicious code;
と同じように見えます:
-old code;
+new good code;
古い動作を好むユーザーは、$ LESS環境変数を-FRSX明示的に設定するか、core.pagerを ' less -S'に設定できます。
ドキュメントは次のようになります。
環境はSオプションを設定しませんが、コマンドラインが設定し、長い行を切り捨てるように少なく指示します。
同様に、に設定core.pagerするless -+FとF、コマンドラインから環境によって指定されたオプションが無効になり、の「quit if one screen」動作が無効になりlessます。
特定のコマンドに対していくつかのフラグを具体的にアクティブにすることができます。たとえば、に対してのみ行の切り捨てpager.blameをless -S有効にするように設定しますgit blame。
core.pager 'less -+F -+X'これらのオプションを削除する最新の方法です。以下の私の答えを参照してください。