取消设置和清空 LESS 环境变量时的行为有何不同?

取消设置和清空 LESS 环境变量时的行为有何不同?

我想改变less命令的默认行为,所以我添加了以下内容~/.profile

LESS="$LESS -x4"
export LESS

然而,仅仅设置一个LESS环境变量似乎就会改变命令的行为less,因为这现在导致git diff向我显示原始转义序列。

更一般地,输出

LESS='' git diff

unset LESS; git diff

LESS不同。取消设置和设置为空值之间有什么区别LESS(除了前者显然暗示之外-R)?

答案1

这与 无关less,而与 息息相关git。引自git-config(1)手册页(重点是我的):

LESS环境变量为取消设置,Git 将其设置为FRX(如果LESS环境变量是,Git 根本不会改变它)。

选项Rless控制是否解释颜色转义等的,默认情况下不启用,而仅gitLESS环境变量未设置时才设置。

答案2

$LESS是 使用的环境变量less。来自man less

Options are also taken from the environment variable "LESS".  For example, to avoid typing
   "less -options ..." each time less is invoked, you might tell csh:

   setenv LESS "-options"

   or if you use sh:

   LESS="-options"; export LESS

您应该使用其他环境变量名称。

相关内容