将EDITOR环境变量设置为冒号(:)到无操作编辑器

时间:2016-08-16 15:59:29

标签: git unix editor

EDITOR环境变量设置为:是否意味着Unix中没有操作支持的行为?或者它对Git来说是特殊的吗?

我偶然发现了将EDITOR=:传递给Git的示例,以短路任何启动编辑器的尝试:

# Amend the commit, reusing the commit message
EDITOR=: git commit --amend

但是等一下。为什么这样做? EDITOR环境变量应设置为指向PATH中的编辑器可执行文件,如EDITOR=vim等。在进行了一些挖掘之后,我发现Git明确地检查了编辑器值:并且在这种情况下没有启动编辑器。 (有关血腥的详细信息,请参阅MySQL 5.7 Doc。)

所以回到这个问题,似乎Git支持:作为无操作编辑器,它通过特殊套管来实现。 :甚至是EDITOR的合法值,还是某些程序支持的约定? (另一种方法是设置EDITOR=echoEDITOR=touch,以便将编辑器调用为touch FILE,保持FILE不被修改。)

加成

使用:表示EDITOR的无操作似乎奇怪地类似于: Bash builtin是等同于true的无操作命令。巧合?

commit.c

1 个答案:

答案 0 :(得分:1)

使用:可能是对Bourne shell(more reading on that)的一种认可,但正如您所注意到的那样,它是在Git中明确处理的。我不知道在哪里将EDITOR=:记录为预期在全球范围内工作的东西。

Git支持EDITOR=:日期一直追溯到2007年:https://github.com/git/git/commit/943316e96ca2dad67086af2f945e42467a27ddd6