协慌网

登录 贡献 社区

如何退出 Vim 编辑器?

我被困住了,无法逃脱。它说:

"type :quit<Enter> to quit VIM"

但是当我输入它时它只是出现在物体中。

答案

Esc键进入 “正常模式”。然后您可以输入:进入 “命令行模式”。冒号( : )将出现在屏幕的底部,并可以键入在以下命令中的一个。要执行命令,请按Enter键。

  • :q退出(简称:quit
  • :q!退出而不保存(简称:quit!
  • :wq写和退出
  • :wq!写入和退出即使文件只有读权限(如果文件没有写权限:强制写入)
  • :x写入并退出(类似于:wq ,但只有在有更改时才写入)
  • :exit写入和退出(与:x相同)
  • :qa全部退出(简称:quitall
  • :cq退出而不保存并使 Vim 返回非零错误(即退出时出错)

您也可以直接从 “命令模式” 退出 Vim,方法是键入ZZ以保存并退出(与:x相同)或ZQ以退出(与:q!相同)。 (注意案例在这里很重要ZZzz并不意味着相同的事情。)

Vim 提供了大量帮助 - 您可以使用:help命令访问 - 您可以在其中找到所有问题的答案和初学者教程。

在输入命令之前, 按 Esc 。输入后,点击Return确认。

Esc完成当前命令并将 Vim 切换到正常模式 。现在,如果按 ,则:将出现在屏幕底部 。这确认您实际上正在键入命令而不是编辑该文件。

大多数命令都有缩写,可选部分用括号括起来: c[ommand]

标有 “*” 的命令仅限 Vim(未在 Vi 中实现)。

安全退出(如果有未保存的更改,则会失败):

  • :q[uit]退出当前窗口 。如果这是最后一个窗口,请退出 Vim。在当前缓冲区中进行更改时,此操作失败。
  • :qa[ll] * 退出所有窗口和 Vim,除非有一些缓冲区已被更改。

提示退出(提示是否有未保存的更改)

  • :conf[irm] q[uit] * 退出,但是当有一些缓冲区已经改变时给出提示。
  • :conf[irm] xa[ll] * 写入所有已更改的缓冲区并退出 Vim。无法写入某些缓冲区时出现提示。

写(保存)更改并退出:

  • :wq写入当前文件(即使它没有更改)并退出。当文件是只读文件或缓冲区没有名称时,写入失败。 :wqa[ll] * 适用于所有窗口。
  • :wq!相同,但写甚至只读文件。 :wqa[ll]! * 适用于所有窗户。
  • :x[it]ZZ详见 )。只有在文件被更改并且退出时才写入文件:xa[ll] * 表示所有窗口。

放弃更改并退出:

  • :q[uit]! ZQ * 在没有写入时退出,当可见缓冲区发生变化时也是如此。更改隐藏缓冲区时不退出。
  • :qa[ll]! * :quita[ll][!] * 退出 Vim,缓冲区的所有更改(包括隐藏)都将丢失。

Return键确认命令。

这个答案没有引用所有 Vim 写和退出命令和参数。实际上,它们在Vim 文档中被引用。

Vim 有广泛的内置帮助,类型Esc :help 返回打开它。

这个答案的灵感来自于另一个 ,最初由 @dirvine 撰写并由其他 SO 用户编辑。我从 Vim 参考,SO 评论和其他一些来源中收集了更多信息。 Vi 和 Vim 的差异也反映出来。

图片值得一千个 Unix 命令和选项:

在此输入图像描述

我每个学期都会向学生画这个,然后他们似乎抓住了 vi。

vi 是一个只有三个状态的有限状态机

启动后,vi 进入 COMMAND 模式,您可以盲目地键入短,少数字符命令。你知道你在做什么; 这不适合业余爱好者。

当您想要实际编辑文本时,您应该使用一些单字符命令进入 INSERT 模式:

  • i:转到 INSERT 代替光标
  • 我:在行的开头进入 INSERT 模式
  • a: 光标追加
  • A:追加到最后一行
  • o:在当前行下面打开一个新行
  • O:在当前行的位置打开一个新行

现在,回答这个问题:退出。

您可以从 EX 模式退出 vi:

  • 问:如果您没有进行任何修改,或事先保存过
  • q!:忽略任何修改并退出
  • wq:保存并退出
  • x:这等于 wq

wx接受文件名参数。如果您使用文件名启动 vi,则无需再次在此处提供。

最后,最重要的是:你怎么能达到 EX 模式?

EX 模式适用于长命令,您可以在屏幕底部看到输入。在命令模式下,按下冒号, : ,冒号将出现在底行,您可以在其中键入上述命令。

从 INSERT 模式,您需要按 ESC,即 Escape 按钮,进入 COMMAND 模式,然后:进入 EX 模式。

如果您不确定,请按 ESC 键,这将使您进入命令模式。

因此,健壮的方法是 ESC - : - x-Enter,它保存您的文件并退出。