我被困住了,无法逃脱。它说:
"type :quit<Enter> to quit VIM"
但是当我键入它时,它只会出现在对象主体中。
按Esc键进入“普通模式”。然后您可以键入:
以进入“命令行模式”。冒号 ( :
) 将出现在屏幕底部,您可以键入以下命令之一。要执行命令,请按Enter键。
:q
退出(的缩写:quit
):q!
不保存就退出(缩写:quit!
):wq
写和退出:wq!
即使文件只有读取权限,也要写入和退出(如果文件没有写入权限:强制写入):x
写入和退出(类似于:wq
,但仅在有更改时写入):exit
写入和退出(同:x
):qa
全部退出(的缩写:quitall
):cq
退出而不保存并使 Vim 返回非零错误(即退出错误)您也可以通过键入ZZ
保存并退出(与 相同:x
)或ZQ
仅退出(与 相同:q!
)直接从“普通模式”退出 Vim。(请注意,大小写在这里很重要。ZZ
并不zz
意味着同样的事情。)
Vim 有广泛的帮助 - 您可以使用:help
命令访问 - 您可以在其中找到所有问题的答案和初学者教程。
图片值一千个 Unix 命令和选项:
我每学期都把这个画给我的学生,之后他们似乎掌握了 vi。
Vi 是一个只有三个状态的有限状态机。
启动后,vi 进入 COMMAND 模式,您可以在其中盲目地键入简短的、少量字符的命令。你知道你在做什么;这不适合业余爱好者。
当您想实际编辑文本时,您应该使用一些单字符命令进入 INSERT 模式:
现在,回答问题:退出。
您可以从 EX 模式退出 vi:
w
并x
接受文件名参数。如果您以文件名启动 vi,则无需在此处再次提供。
最后,最重要的一点:如何进入 EX 模式?
EX 模式适用于您可以在屏幕底部看到输入的长命令。在 COMMAND 模式下,您按下冒号, :
,冒号将出现在底线,您可以在此处键入上述命令。
在 INSERT 模式下,您需要按 ESC,即 Escape 按钮,进入 COMMAND 模式,然后: 进入 EX 模式。
如果您不确定,请按 ESC,这将使您进入命令模式。
稳健的方法是 ESC-:-x-Enter 保存文件并退出。
在输入命令之前,请按Esc键。输入后,点击Return确认。
Esc完成当前命令并将 Vim 切换到正常模式。现在,如果您按:,:
将出现在屏幕底部。这确认您实际上是在键入命令而不是在编辑文件。
大多数命令都有缩写,可选部分括在括号中:c[ommand]
.
标有“*”的命令仅适用于 Vim(未在 Vi 中实现)。
安全退出(如果有未保存的更改则失败):
提示退出(如果有未保存的更改则提示)
: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
Return打开它。
这个答案的灵感来自另一个,最初由@dirvine 创作并由其他 SO 用户编辑。我已经包含了来自 Vim 参考、SO 评论和其他一些来源的更多信息。Vi 和 Vim 的差异也反映出来。
如果你想退出而不保存在 Vim 中并让 Vim 返回一个非零的退出代码,你可以使用:cq
.
我一直都在使用它,因为我懒得换小指!
。我经常将不需要保存在文件中的东西通过管道传输到 Vim。我们还有一个奇怪的 SVN 包装器在工作,它必须以非零值退出才能中止签入。
这是终极的、严肃的、硬核的退出命令,如果你想退出 Vim 的最坏情况,不知道你做了什么,你也不关心你打开的文件会发生什么。
Ctrl- cEnterCtrl-\Ctrl-nEnter:qa!
Enter
这会让你大部分时间都出去。最多。
你可能会天真地认为,你可以敲Esc几下然后再做:qa!
。哦,你怎么会弄错的。
看看这些点击Esc不够的有趣案例:
i
Ctrl- ovg
(您进入插入模式,然后是可视模式,然后是操作员挂起模式)
Qappend
Enter
i
Ctrl- ogQ
Ctrl- r=
Ctrl- k(感谢 porges 提供此案例)
i
Ctrl- ogQ
Ctrl-r=inputdialog('foo','bar')
Enter
:set insertmode
(这是一种情况Ctrl-\Ctrl-n将您返回到正常模式)
如果您需要以简单模式退出 Vim (使用选项时),您可以通过按+-y
进入正常 Vim 模式,然后任何正常退出选项都将起作用。CtrlL
Vim 具有三种操作模式:输入模式、命令模式和 Ex 模式。
输入模式- 您键入的所有内容,所有击键都会在屏幕上回显。
命令模式或转义模式- 您在此模式下键入的所有内容都被解释为命令。
Ex 模式- 这是另一个编辑器,例如。它是一个行编辑器。它适用于每行或基于一系列行。在此模式下,:屏幕底部会出现一个。这是前任编辑。
要退出 Vim,您可以在 ex 模式或命令模式下退出。当你处于输入模式时,你不能退出 Vim。
退出 ex 模式
您需要确保您处于命令模式。为此,只需按下Esc键。
按:键进入 ex 模式
在 ex 模式下使用以下任意组合退出:
:q
- 退出
:q!
- 不保存
:wq
退出 - 保存并退出或写入并退出
:wq!
- 与 wq 相同,但在文件权限为只读的情况下强制写入
:x
- 写入并退出
:qa
- 全部退出。当打开多个文件时很有用,例如:vim abc.txt xyz.txt
退出命令模式
按退出键。如果您处于命令模式,您可能已经这样做了。
按大写 ZZ ( shift zz
) - 保存并退出
按大写 ZQ ( shift zq
) - 退出而不保存。
点击ESC(或我的电脑上的cmd+ C)后,您必须点击:才能显示命令提示符。然后,您可以输入quit
.
您可能会发现机器不允许您退出,因为您的信息尚未保存。如果您仍然想退出,请!在退出后直接输入(即:quit!
)。
我通过在 Windows 上安装 Git 客户端获得了 Vim。:q
不会为我退出 Vim。:exit
然而...
带有数字的q
命令关闭该位置的给定拆分。
:q<split position>
或:<split position>q
将关闭该位置的拆分。
假设您的 Vim 窗口布局如下:
-------------------------------------------------
| | | |
-------------------------------------------------
| | | |
| | | |
| Split 1 | Split 2 | Split 3 |
| | | |
-------------------------------------------------
如果您运行该q1
命令,它将关闭第一个拆分。q2
将关闭第二次拆分,反之亦然。
退出命令中拆分位置的顺序无关紧要。:2q
或:q2
将关闭第二个拆分。
如果您传递给命令的拆分位置大于当前拆分的数量,它将简单地关闭最后一个拆分。
例如,如果您q100
在上面只有三个拆分的窗口设置上运行,它将关闭最后一个拆分(拆分 3)。
这个问题已经在这里问过了。
一种有保证的方法是杀死运行 vim 的端口
! kill - 9 $(ps | grep vim | cut -d " " -f 1)
从四种模式中的任何一种:插入、视觉、命令或命令行(ex)模式,如果更改,请按此保存,然后退出 vim:
Alt-Z
Z
即按:alt + shift + z
则shift + z
为什么会这样:从插入模式和显然其他模式,您可以退出到命令模式并通过按住 Alt 和任何命令字符的组合来执行命令。第二个 Alt+Shift+Z 被忽略,因此您必须放开 Alt 但保留 Shift。锻炼肌肉记忆!:-)
:q 相当 :wq 保存和相当 :q!不服就戒