我在OSX计算机上有一个相当默认的git设置,但我想将-j.5添加到less,以便搜索匹配发生在屏幕中间。< / p>
我尝试export LESS=-j.5
,但这会导致ESC[1mdiff --git a/app/images/bluecog-icon.png b/app/images/bluecog-icon.pngESC[m
等内容出现,即使事先echo $LESS
给出了空结果。我查了git help diff
,但它没有提及#34; pager&#34;或提及&#34; less&#34;引用unix工具(而不是意味着&#34;更大&#34;的相反)。
修改环境变量或将参数传递给git diff
是可以接受的。我知道我可以在git diff本身内输入-j.5
。
答案 0 :(得分:3)
Git的设置有点奇怪:
less
(虽然这是编译时选项)。core.pager
配置特定的寻呼机。如果您这样做,可以在此处添加选项。less
命令本身首先读取环境变量LESS
,然后扫描选项。LESS
(对任何东西,甚至包括空字符串),Git都不会设置它;但除此之外,即使寻呼机不是FRX
,Git也会将其设置为less
。因此,如the git config
documentation中所述:
...如果您想有选择地覆盖Git
LESS
的默认设置, 您可以将core.pager
设置为例如less -S
。这将被传递给 shell由Git提供,它将最终命令转换为LESS=FRX less -S
。环境不会设置S
选项,而是设置命令 line,指示较少截断长行。同样的, 将core.pager
设置为less -+F
会停用F
选项 由命令行环境指定,停用less
的“退出,如果一个屏幕”行为。一个人可以具体 激活特定命令的一些标志:例如,设置pager.blame
到less -S
仅对git blame
启用了行截断。
因此,如果您只希望git diff
使用此功能,请将pager.diff
设置为less -j.5
。如果你想要它用于所有Git命令,你可以 设置core.pager
到less -j.5
或将环境变量LESS
设置为{ {1}};两者都会产生同样的效果。
答案 1 :(得分:1)
那些ESC[1m
是终端的颜色代码。要让less
解释它们,请添加选项-R
。还建议使用选项-FSX
:
export LESS=FRSXj.5