在 git 中选择默认编辑器时为什么要使用“--wait”?

Why should I use "--wait" when selecting my default editor in git?

我知道等待标志将使编辑器保持打开状态,直到我们关闭应用程序。

为什么这有用或重要?如果我不应用标志会怎样?在 git 中等待标志是否还有其他有用的情况?

等待标志示例:git config --global core.editor "code --wait"

你不应该。或者,你应该。这不是真正的 Git 问题。

如果你的编辑器一个--wait标志,--wait标志的含义取决于你的编辑器.

在这种情况下,您的特定编辑器具有某种“功能”:

  • 运行 作为 code,它生成一个新的编辑器 window 并立即 returns 到调用程序。调用程序重新获得对现有 window 的控制。编辑可能还没有完成打开新的window。

  • 运行 作为 code --wait,然而,它会生成一个新的编辑器 window,然后 等待 。它等待新编辑器 window 发出信号,表明正在使用该编辑器 window 编辑某个文件的用户已 完成文件编辑 然后,然后才return控制调用程序。

当调用程序是您自己的 shell 时,您在其中键入命令时,默认设置(“不要等待”)允许您键入更多命令,这很好。但是当调用程序是 git commit 时,调用程序 假设提交消息现在是你想要的 ,因为 Git 相信编辑器 不会 return 直到文件被写出。

围绕 Git 设计的编辑器,例如 vim 和(旧版本)emacs,在完成编辑之前不要 return文件。所以 Git 假设所有的编辑器都是这样的。如果您的编辑器有这种行为,那就太好了! Git的假设成立,我们就完成了。

如果您的首选编辑器没有这样的行为,我们就有问题了。我们需要这样的东西:

  • 调用您喜欢的编辑器,然后
  • 等到编辑发出您已完成编辑的信号,然后
  • returns 控制到 git commitgit rebase --interactive.

如果那个程序是 code --wait,太好了!我们完成了。如果不是,请找到它 的任何程序。将其设置为您的 core.editor 设置。