当前位置: 首页 > 知识库问答 >
问题:

如何退出Vim?

暴乐邦
2023-03-14

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

type :quit<Enter> to quit VIM

但当我键入时,它只会出现在对象体中。

共有3个答案

黄英韶
2023-03-14

输入命令前,按Esc键。输入后,按返回键确认。

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

大多数命令都有缩写,可选部分包含在括号中:c[ommand]

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

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

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

提示退出(如果有未保存的更改,则提示退出)

  • 退出,但在某些缓冲区已更改时给出提示

写入(保存)更改并退出:

  • : wq写入当前文件(即使未更改)并退出。当文件为只读或缓冲区没有名称时,写入失败。: wqa[ll]*适用于所有窗口。
  • :wq!相同,但甚至写入只读文件。:wqa[ll]!*适用于所有窗口。
  • : x[it]ZZ(带详细信息)。仅当文件被更改并退出时才写入文件,: xa[ll]*适用于所有窗口。

放弃更改并退出:

  • <代码>:q[uit] ZQ*在可见缓冲区发生更改时,也可以不写而退出。当有更改的隐藏缓冲区时不退出
  • <代码>:qa[ll] *,<代码>:quita[ll][!] *退出Vim,对缓冲区的所有更改(包括隐藏)都将丢失

返回确认命令。

此答案不会引用所有Vim写和退出命令和参数。事实上,它们在Vim留档中被引用。

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

这个答案受到了另一个答案的启发,该答案最初由@filvine撰写并由其他SO用户编辑。我从Vim参考、SO评论和其他一些来源中包含了更多信息。Vi和Vim的差异也得到了反映。

习哲彦
2023-03-14

图片胜过一千个Unix命令和选项:

我每学期都会给我的学生们画这个,他们似乎在之后掌握了vi。

Vi是一个只有三个状态的有限状态机。

开始时,vi进入命令模式,您可以在其中盲目地键入简短、少字符的命令。你知道你在做什么;这不是为业余爱好者准备的。

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

  • i: 转到在光标位置插入
  • 一: 转到行首的插入模式
  • a: 在光标后追加
  • A: 在行尾追加
  • o: 在当前行下方打开新行
  • O: 在当前行的位置打开新行

现在,回答问题:退出。

您可以从EX模式退出vi:

  • q: 如果您没有进行任何修改,或事先保存

w和x接受文件名参数。如果您使用文件名启动vi,则无需在此处再次给出它。

最后,最重要的是:如何才能达到EX模式?

EX模式用于显示在屏幕底部键入的长命令。在命令模式下,按冒号,,冒号将出现在底线,您可以在这里键入上述命令。

从插入模式,您需要按ESC键,即退出按钮,进入命令模式,然后:进入EX模式。

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

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

蒋奇
2023-03-14

VIM基本上有两种模式:命令模式(以下也称为“正常模式”)和插入模式。很可能您处于“插入模式”,它不会(毫不奇怪)插入您键入的内容,而在“命令模式”中,它会尝试执行您发出的命令(如退出)。

然而,当VIM处于插入模式时,它会在最后一行的左侧显示“-insert--”(它也会在此处显示行和列号)。

因此,要结束插入模式并返回到命令模式,只需按Esc键。然后您可以键入:进入“命令行模式”。屏幕底部将显示冒号(),您可以键入以下命令之一。要执行命令,请按Enter键。

  • q退出(简称退出)

您也可以直接从“正常模式”退出Vim,方法是键入ZZ保存并退出(与x相同),或键入ZQ退出(与q相同)。(请注意,这里的大小写很重要。ZZ和ZZ的含义不同。)

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

 类似资料:
  • 但当我输入它时,它就会出现在对象体中。

  • 问题内容: 我有一个非常简单的问题,但是我没有使用Mysql从SP退出任何简单的代码。谁能和我分享该怎么做? 问题答案:

  • 问题内容: 用于退出的命令是什么?(即终止Node.js进程) 问题答案: 调用全局对象的方法: 从文档: process.exit([code]) 以指定的结束进程。如果省略,则退出使用“成功”代码。 要以“失败”代码退出: 执行节点的外壳程序应将退出代码视为。

  • 问题内容: 有哪些方法可以过早退出子句? 有时候,我在编写代码时希望将一条语句放在子句中,只是要记住,这些语句只能用于循环。 让我们以以下代码为例: 我可以想到一种方法:假设退出情况发生在嵌套的if语句内,请将剩余的代码包装在一个大的else块中。例: 问题是更多的退出位置意味着更多的嵌套/缩进代码。 另外,我可以编写我的代码以使子句尽可能小,并且不需要任何退出。 有人知道退出子句的好/更好的方法

  • 如果您能帮助我完成Java类的任务,我将不胜感激。问题提示如下: 编写一个程序来读取非负整数列表并显示最大整数、最小整数和所有整数的平均值。用户通过输入一个不用于查找最大值、最小值和平均值的负哨兵值来指示输入的结束。平均值应该是双精度类型的值,以便用小数部分计算。 我在代码中遇到的问题是,运行时,循环不会完成,除非输入的第一个值为负值,在这种情况下它返回: 输入的最大数字是:0输入的最小数字是:0

  • 我能够使用Google和Facebook成功登录firebase用户: firebase_auth。飞镖,扑翼_facebook_登录。dart,google_sign_in.dart 我可以使用此功能从不同的小部件注销Firebase用户: 现在,这是两种登录方式(Google和Facebook)的全部功能,如何确定用户是否是Google auth用户,在这种情况下,我可以执行 此外,如果我的签