为什么VIM中的`:Wq`导致我的提交稍后失败?

时间:2015-12-24 15:56:20

标签: git vim commit git-commit

通常当我在VIM中写完提交消息时,我输入:Wq<ENTER>而不是:wq<ENTER>,因为我按住shift键来输入冒号。这会导致VIM以E492: Not an editor command: Wq回复。

到目前为止,这一切都很好,我只需重新输入:wq<ENTER>来保存提交消息并退出VIM。但是,提交不起作用,终端显示如下内容:

$ git commit
$ error: There was a problem with the editor 'vi'.
$ Please supply the message using either -m or -F option.

为什么在执行正确的:Wq<ENTER>之前意外输入:wq<ENTER>导致提交失败?进入:Wq<ENTER>后,有没有办法让提交成立?

2 个答案:

答案 0 :(得分:5)

This article似乎描述了类似的问题。

当您使用大写'W'时,看起来当Vit在Git调用时退出时会出现错误代码。

你试过了吗?

git config --global core.editor /usr/bin/vim

(或者你的系统上安装了vim的地方)......这似乎可以解决问题。必须与Git如何调用Vim有关。

此外,请参阅this question,表明它可能与filetype设置有关。

答案 1 :(得分:2)

我无法复制这个问题。也就是说,我能够收到E492: Not an editor command: Wq错误,但之后运行:wq已成功关闭 vim 并保存了提交。

也许您可以尝试类似于此答案的内容 - https://stackoverflow.com/a/117221/864233

:command WQ wq
:command Wq wq
:command W w
:command Q q

将这四个“别名”保存到~/.vimrc中的文件中,如果您不小心再次运行:Wq,则不会出现错误。

此外,正如上面提到的 Jonathan.Brink ,请确保您实际上使用的是 vim ,而不是 vi ,因为这可能会导致一些问题。