如何保存更改并退出Vim?

5
我正在尝试向我的分支存储库提交一个提交。我已经到了输入提交消息的步骤。Vim出现了,我输入了我想显示的消息,但我不知道接下来该怎么做。我保存消息然后推送吗?如果是这样,我该如何操作呢?我查找了Vim命令以进行保存,但它们似乎是字符而不是命令。任何帮助都将不胜感激。
图片描述:在终端中使用git commit命令时,Vim编辑器会打开输入提交信息。

1
如果您喜欢,也可以使用除vim之外的任何命令行编辑器,方法是设置$GIT_EDITOR$EDITOR,或者使用git config --global core.editor command_name命令。(请参阅git-commit手册页面底部。) - Danica
很高兴知道即使问题已关闭,我仍然可以被踩。在任何时候都需要文明礼貌,不容忍粗鲁行为。 - Itchy Nekotorych
4个回答

19

使用 Vim 编辑器写作并退出:

  1. 按下 Esc 键。
  2. 键入 ":x"。
  3. 按下 Enter 键。

完成后,跟随 git push


2
哇!它能工作了,我太兴奋了。 - Itchy Nekotorych

5
如果你对vim不熟悉,我建议运行这个命令:
git config --global core.editor "nano --tempfile"

这将运行 nano。它感觉更自然,您可以使用 Ctrl+X 退出。

5

有人推荐使用:qa!, :wq等命令。

我建议您使用映射ZZ,这将保存当前文件并退出。 :)

这里有一个很好的完整指南来介绍映射:http://vim.wikia.com/wiki/Mapping_keys_in_Vim_-Tutorial(Part_1)

基本上,在普通模式下输入ZZ将会保存当前文件(如果更改未保存),然后退出Vim。

如果您是Vim的新手,我建议您从命令行中打开vimtutor,以便掌握Vim的基础知识。 :)


你能解释一下使用ZZ映射的好处吗?我对Vim中映射这个术语不太熟悉。 - Itchy Nekotorych
@ShaneKelsey 使用ZZ映射更好,因为它实现了:w:qa!的功能。我将在答案中详细说明。 - greduan
这怎么变得更好了呢?它和:x或者:wq执行相同的操作。但是它与!并不等价;如果磁盘上的文件已经被修改,它将拒绝覆盖该文件。 - user229044
@meagar 它更快。:) 是的,在这个意义上它是不同的,但在那些情况下,您可以使用 :x:wq,或者您可以重新映射 ZZ 以实现 :x:wq 的效果。 :) - greduan

4
要在 vim 中保存文件,您需要处于命令 模式下,可以通过按 Esc 键进入命令模式。
一旦进入命令模式,您可以使用w 保存文件并使用q退出,但首先必须键入“:”。 整个序列如下:
:wq

或者只使用缩写:

:x

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接