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