通常当我在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>
后,有没有办法让提交成立?
答案 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 ,因为这可能会导致一些问题。