将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=echo
或EDITOR=touch
,以便将编辑器调用为touch FILE
,保持FILE
不被修改。)
使用:
表示EDITOR
的无操作似乎奇怪地类似于:
Bash builtin是等同于true
的无操作命令。巧合?
答案 0 :(得分:1)
使用:
可能是对Bourne shell(more reading on that)的一种认可,但正如您所注意到的那样,它是在Git中明确处理的。我不知道在哪里将EDITOR=:
记录为预期在全球范围内工作的东西。
Git支持EDITOR=:
日期一直追溯到2007年:https://github.com/git/git/commit/943316e96ca2dad67086af2f945e42467a27ddd6!