首页 文章

如何退出Vim编辑器?

提问于
浏览
2944

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

"type :quit<Enter> to quit VIM"

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

12 回答

  • 4

    按下ESC(或我的计算机上的cmd C)后,您必须点击:出现命令提示符 . 然后,您可以输入 quit .

    ,您可能会发现机器不允许您退出,因为您的信息还没有想要退出,请输入!退出后直接(即 :quit! ) .

  • 146

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

    Enter image description here

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

    vi是finite state machine,只有三个州 .

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

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

    • i:转到INSERT代替光标

    • I:在行的开头进入INSERT模式

    • a:在光标后追加

    • 答:追加到行尾

    • o:在当前行下面打开一个新行

    • O:在当前行的位置打开一个新行

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

    您可以从EX模式退出vi:

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

    • q!:忽略任何修改并退出

    • wq:保存并退出

    • x:这等于wq

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

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

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

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

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

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

  • 4026

    按Esc键进入"Normal mode" . 然后您可以输入 : 进入"Command-line mode" . 冒号( : )将出现在屏幕底部,您可以键入以下命令之一 . 要执行命令,请按Enter键 .

    • :q 退出( :quit 的缩写)

    • :q! 退出而不保存( :quit! 的缩写)

    • :wq 写和退出

    • :wq! 即使文件只具有读权限也要写入和退出(如果文件没有写权限:强制写入)

    • :x 写和退出(类似于 :wq ,但只有在有变化时才写)

    • :exit 写入和退出(与 :x 相同)

    • :qa 退出全部( :quitall 的缩写)

    • :cq 退出而不保存并使Vim返回非零错误(即退出并显示错误)

    你也可以直接从"Command mode"退出Vim,输入 ZZ 保存并退出(与 :x 相同)或 ZQ 退出(与 :q! 相同) . (注意案例在这里很重要. ZZzz 并不代表同一件事 . )

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

  • 4

    我想在此添加我的two cents . 问题已被提出here .

    带编号的 q 命令将关闭该位置的给定拆分 .

    :q<split position>:<split position>q 将关闭该位置的拆分 .

    假设你的Vim窗口布局如下:

    -------------------------------------------------
    |               |               |               |
    -------------------------------------------------
    |               |               |               |
    |               |               |               |
    |    Split 1    |    Split 2    |     Split 3   |
    |               |               |               |
    -------------------------------------------------
    

    如果运行 q1 命令,它将关闭第一次拆分 . q2 将关闭第二次拆分,反之亦然 .

    quit命令中拆分位置的顺序无关紧要 . :2q:q2 将关闭第二次拆分 .

    如果传递给命令的分割位置大于当前分割的数量,则它将简单地关闭最后一个分割 .

    例如,如果在上面的窗口设置中运行 q100 ,其中只有三个分割,它将关闭最后一个分割(分割3) .

  • 25

    在输入命令之前, hit the Esc key . 输入后,点击Return确认 .

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

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

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

    Safe-quit (fails if there are unsaved changes):

    • :q[uit] 退出当前window . 如果这是最后一个窗口,请退出Vim . 当前buffer中进行了更改时,此操作失败 .

    • :qa[ll] *退出所有窗口和Vim,除非有一些缓冲区已被更改 .

    Prompt-quit (prompts if there are unsaved changes)

    • :conf[irm] q[uit] *退出,但在有一些已更改的缓冲区时给出提示 .

    • :conf[irm] xa[ll] *写入所有已更改的缓冲区并退出Vim . 无法写入某些缓冲区时出现提示 .

    Write (save) changes and quit:

    • :wq 写入当前文件(即使没有更改)并退出 . 当文件是只读文件或缓冲区没有名称时,写入失败 . :wqa[ll] *适用于所有窗口 .

    • :wq! 相同,但写甚至只读文件 . :wqa[ll]! *适用于所有窗口 .

    • :x[it]ZZ (与details) . 仅在文件被更改时写入文件并退出, :xa[ll] *用于所有窗口 .

    Discard changes and quit:

    • :q[uit]! ZQ *在没有写入的情况下退出,当可见缓冲区发生更改时也是如此 . 更改隐藏缓冲区时不退出 .

    • :qa[ll]! *, :quita[ll][!] *退出Vim,缓冲区的所有更改(包括隐藏)都将丢失 .

    Press Return to confirm the command.

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

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

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

  • 36

    如果您需要在 easy mode 中退出Vim(使用 -y 选项时),您可以通过按Ctrl L进入正常的Vim模式,然后任何正常的退出选项都可以 .

  • 92

    如果要在不保存Vim的情况下退出并让Vim返回非零退出代码,则可以使用 :cq .

    我一直都在使用这个,因为我不能为 ! 的小拇指转移而烦恼 . 我经常把东西送到Vim,不需要保存在文件中 . 我们还有一个奇怪的SVN包装器,它必须以非零值退出才能中止签入 .

  • 68

    以下是退出Vim的方法 . 按Ctrl&'Z',然后按'X'和'C' .

    Ctrl -> +Z -> +X -> +C
    
  • 40

    这是针对退出Vim的最坏情况,如果你只是想要,不知道你做了什么,你不关心你打开的文件会发生什么 .

    Ctrl-cEnterEnter vi EnterCtrl- \ _Ctrl -n :qa! Enter

    这应该会让你在大部分时间出门 .

    一些有趣的案例,你需要这样的东西:

    • i Ctrl-o vg (您进入插入模式,然后进入可视模式,然后进入操作员暂挂模式)

    • Qappend 输入

    • i Ctrl-o gQ Ctrl-r = Ctrl-k(感谢本案例中的porges)

    • :set insertmode (这是Ctrl- \ _Ctrl-n返回正常模式的情况)


    编辑:由于上述情况,此答案已得到纠正 . 它曾经是:

    EscEscEsc :qa! 输入

    但是,如果您已进入Ex模式,则不起作用 . 在这种情况下,您需要:

    vi 输入 :qa! Enter

    所以完整的命令“我不想知道我做了什么,我不想保存任何东西,我现在只想出去!”将会

    vi EnterEscEscEsc :qa! 输入

  • 25

    Vim有三种操作模式:输入模式,命令模式和防爆模式 .

    Input mode - 您输入的所有内容,所有击键都会在屏幕上回显 .

    Command mode or Escape mode - 您在此模式下键入的所有内容都被解释为命令 .

    Ex mode - 这是另一位编辑,例如 . 这是一个行编辑器 . 它适用于每行或基于一系列行 . 在此模式下,a:出现在屏幕底部 . 这是前编辑 .

    要退出Vim,您可以在ex模式或命令模式下退出 . 当您处于输入模式时,无法退出Vim .

    Exiting from ex mode

    • 您需要确保处于命令模式 . 为此,只需按Esc键即可 .

    • 按:键进入ex模式

    • 在ex模式下使用以下任何组合退出:

    :q - 退出 :q! - 退出而不保存 :wq - 保存并退出或写入&退出 :wq! - 与wq相同,但强制写入以防文件权限只读 :x - 写入并退出 :qa - 退出所有 . 打开多个文件时很有用,如: vim abc.txt xyz.txt

    Exiting from command mode

    • 按退出键 . 如果您处于命令模式,则可能已经完成了此操作 .

    • 按资本ZZ( shift zz ) - 保存并退出

    • 按资本ZQ( shift zq ) - 退出而不保存 .

  • 16

    我通过在Windows上安装Git客户端获得了Vim . :q 不会为我退出Vim . 但是 :exit 确实......

  • 5

    退出 vim 实际上非常容易 .

    按Escape,转两圈,踢猫,做一杯完美的茶,跑四分钟一英里,爬上珠穆朗玛峰,在12秒差距内做出Kessel Run,宣称铁宝座,达到世界和平,按 :q 输入

相关问题