为什么 VIM 中的 `:Wq` 会导致我的提交稍后失败?
Why does `:Wq` in VIM cause my commit to fail later?
通常当我在 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>
?
后有什么方法可以让提交发生?
This article 似乎描述了类似的问题。
当您使用大写 'W' 时,Vim 在被 Git 调用时似乎正在退出并显示错误代码。
你试过了吗:
git config --global core.editor /usr/bin/vim
(或您的系统上安装了 vim 的任何地方)...这似乎解决了问题。必须与 Git 如何调用 Vim.
有关
另请参阅 this question,这表明它可能与 filetype
设置有关。
我无法重现这个问题。也就是说,我能够得到 E492: Not an editor command: Wq
错误,但是 运行ning :wq
之后成功关闭 vim 并保存了提交.
也许你可以尝试类似这个答案的东西 -
:command WQ wq
:command Wq wq
:command W w
:command Q q
将这四个 "aliases" 保存到 ~/.vimrc
中的文件中,如果您不小心再次 运行 :Wq
,它不会出错。
此外,正如上面提到的 Jonathan.Brink,请确保您实际使用的是 vim 而不是vi,因为这也可能导致一些问题。
通常当我在 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>
?
This article 似乎描述了类似的问题。
当您使用大写 'W' 时,Vim 在被 Git 调用时似乎正在退出并显示错误代码。
你试过了吗:
git config --global core.editor /usr/bin/vim
(或您的系统上安装了 vim 的任何地方)...这似乎解决了问题。必须与 Git 如何调用 Vim.
有关另请参阅 this question,这表明它可能与 filetype
设置有关。
我无法重现这个问题。也就是说,我能够得到 E492: Not an editor command: Wq
错误,但是 运行ning :wq
之后成功关闭 vim 并保存了提交.
也许你可以尝试类似这个答案的东西 -
:command WQ wq
:command Wq wq
:command W w
:command Q q
将这四个 "aliases" 保存到 ~/.vimrc
中的文件中,如果您不小心再次 运行 :Wq
,它不会出错。
此外,正如上面提到的 Jonathan.Brink,请确保您实际使用的是 vim 而不是vi,因为这也可能导致一些问题。