如何退出Vim编辑器?
我卡住了,无法逃脱。 它说:
"type :quit<Enter> to quit VIM"
但是,当我input它只是出现在对象的身体。
按Esc键进入“命令模式”。 然后你可以键入:
进入“命令行模式”。 冒号(:)将出现在屏幕的底部,您可以键入以下命令之一。 要执行命令,请按Enter键。
-
:q
退出(简称:quit
) -
:q!
退出而不储蓄(简称:quit!
) -
:wq
写和退出 -
:wq!
即使文件只有读取权限,也要写入和退出(如果文件没有写入权限:强制写入) -
:x
写入和退出(类似于:wq
,但只有在写有变化的情况下) -
:exit
写入和退出(同:x
) -
:qa
全部退出(简称:quitall
)
你也可以直接从“命令模式”退出Vim,方法是inputZZ
保存并退出(与:x
相同)或ZQ
退出(与:q!
相同)。 (请注意,这里的情况很重要, ZZ
和ZZ
并不是同一个意思。)
Vim有广泛的帮助 – 你可以使用:help
命令来访问 – 在这里你可以find所有问题的答案和初学者的教程。
在input命令之前, 按Esc键 。 input后,点击回车确认。
Esc完成当前命令并将Vim切换到命令行模式 。 现在如果按下: , :
将出现在屏幕的底部 。 这证实你实际上正在input一个命令而不是编辑这个文件。
大多数命令都有缩写,可选部分用括号括起来: c[ommand]
。
标有'*'的命令是Vim-only(在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,对缓冲区(包括隐藏)的所有更改都将丢失。
按回车确认命令。
这个答案没有引用所有的Vim写入和退出命令和参数。 事实上,它们在Vim文档中被引用。
Vim有大量的内置帮助,键入Esc :help
返回打开它。
这个答案的灵感来自另一个 ,最初由@dirvine撰写,并由其他SO用户编辑。 我已经包含了来自Vim参考,SO评论和其他一些来源的更多信息。 Vi和Vim的差异也反映出来。
如果你想退出而不保存在vim中并让vim返回一个非零的退出代码,你可以使用:cq
。
我一直用这个,因为我不能为小指换class而烦恼!
。 我经常把事情pipe到vim上,不需要保存在文件中。 我们也有一个奇怪的SVN包装在工作中必须退出非零值,以中止签入。
值得一千个unix命令和选项的图片:
我每学期都把这个画给我的学生,他们似乎在以后学习vi。
vi是一个只有三个状态的有限状态机 。
开始后,vi进入COMMAND模式,在那里你可以盲目地input简短的字符命令。 你知道你在做什么,这不是业余爱好者。
当你想实际编辑文本时,你应该使用一些单字符命令进入INSERT模式:
- 我:去插入光标的地方
- I:在行的开始处进入INSERT模式
- a: 在光标后面追加
- 答:追加在行尾
- o:在当前行下面打开一个新行
- O:在当前行的位置打开一个新行
现在,回答这个问题:退出。
您可以从EX模式退出vi:
- 问:如果你没有做任何修改,或者事先保存好
- q !:忽略任何修改并退出
- wq:保存并退出
- x:这等于wq
w和x接受文件名称参数。 如果你用一个文件名开始vi,那么你不需要再次在这里给它。
最后,最重要的是:你怎样才能达到EX模式?
EX模式适用于您可以在屏幕底部input的长命令。 从命令模式,你推冒号:和一个冒号将出现在底部的行,你可以键入上述命令。
在INSERT模式下,您需要按下Esc键,即Escape键,进入COMMAND模式,然后:进入EX模式。
如果您不确定,请按ESC键,您将进入命令模式。
所以,健壮的方法是ESC – : – x-Enter保存您的文件并退出。
这是退出VIM的最坏情况,如果你只是想出来,不知道你做了什么,你不在乎你打开的文件会发生什么。
Ctrl-c Enter Enter vi
input Ctrl- \ Ctrl-n :qa!
input
这应该让你大部分时间。
一些有趣的情况下,你需要这样的事情:
-
i
Ctrl-ovg
(你进入插入模式,然后视觉模式,然后运营商挂起模式) -
Qappend
Enter -
i
按Ctrl -ogQ
Ctrl-r=
Ctrl-k (感谢这个案例的porges) -
:set insertmode
(这是Ctrl- \ Ctrl-n返回到正常模式的情况)
编辑:由于上述情况,此答案已更正。 它曾经是:
Esc Esc Esc :qa!
input
但是,如果您已经进入Ex模式,则这不起作用。 在这种情况下,你需要做的是:
vi
input :qa!
input
所以完整的命令是“我不想知道我做了什么,我不想保存任何东西,我只是想现在!” 将会
vi
Enter Esc Esc Esc :qa!
input
如果您需要以简易模式退出Vim(使用-y
选项),则可以通过按control + L
进入正常的Vim模式,然后任何正常的退出选项都可以使用。
点击ESC (或者我的电脑上的cmd + C )后,你必须点击:显示命令提示符。 然后,你可以进入quit
。
您可能会发现本机不允许您退出,因为您的信息尚未保存。 如果你想退出,请input! 直接退出后(即:quit!
)。
VIM有3种操作模式:input模式,命令模式和Ex模式。
input模式 – 您input的所有内容,所有按键都会在屏幕上回显。
命令模式或转义模式 – 您在此模式下input的所有内容都被解释为命令。
Ex模式 – 这是另一位编辑,例如。 这是一个行编辑器。 它每行工作或基于一系列的行。 在这种模式下,a :
出现在屏幕的底部。 这是前编辑。
为了退出vim,你可以在ex模式或命令模式下退出。 当您处于input模式时,不能退出vim。
从ex模式退出
-
您需要确保您处于命令模式。 要做到这一点,只需按下Escape键。
-
按下
:
键转到ex模式 -
在ex模式下使用以下任何组合可退出:
:q
– 退出:q!
– 退出而不保存:wq
– 保存退出或写入&退出:wq!
– 与wq相同,但强制写入incase文件权限是只读的:x
– 写入和退出:qa
– 退出全部。 当打开多个文件时很有用: vim abc.txt xyz.txt
从命令模式退出
-
按下退出键。 你可能已经做到了这一点,如果你在命令模式。
-
按大写ZZ(
shift zz
) – 保存并退出 -
按大写ZQ(
shift zq
) – 退出不保存。
我通过在Windows上安装Git客户端来获得Vim。 :q
不会为我退出Vim。 :exit
然而…