我被困住了,无法逃脱。它说:
"type :quit<Enter> to quit VIM"
但是当我输入它时,它只是出现在对象体中。
答案 0 :(得分:4442)
按 Esc 键进入“正常模式”。然后,您可以键入:
以进入“命令行模式”。冒号(:
)将出现在屏幕底部,您可以键入以下命令之一。要执行命令,请按 Enter 键。
:q
退出(:quit
的缩写):q!
退出而不保存(:quit!
的缩写):wq
写和退出:wq!
即使文件只具有读权限(如果文件没有写权限:强制写入)也要写入和退出:x
写入和退出(类似于:wq
,但只有在有更改的情况下才会写入):exit
写入和退出(与:x
相同):qa
退出全部(:quitall
的缩写):cq
退出而不保存并使Vim返回非零错误(即退出时出错)您也可以直接从“正常模式”退出Vim,方法是输入ZZ
保存并退出(与:x
相同)或ZQ
以退出(与{{1}相同) })。 (请注意,这里的情况非常重要。:q!
和ZZ
并不意味着相同的事情。)
Vim提供了大量帮助 - 您可以使用zz
命令进行访问 - 您可以在其中找到所有问题的答案和初学者教程。
答案 1 :(得分:157)
在输入命令之前,点击 Esc 键。输入后,点击返回进行确认。
Esc 完成当前命令并将Vim切换为normal mode。现在,如果按:,:
将出现在屏幕的底部。这确认您实际上正在键入命令而不是编辑该文件。
大多数命令都有缩写,可选部分用括号括起来:c[ommand]
。
标有'*'的命令仅限Vim(未在Vi中实现)。
安全退出(如果有未保存的更改,则会失败):
提示退出(提示是否有未保存的更改)
:conf[irm] q[uit]
*退出,但在有一些已更改的缓冲区时给出提示。:conf[irm] xa[ll]
*写下所有已更改的缓冲区并退出Vim。当无法写入某些缓冲区时,请打开提示。写入(保存)更改并退出:
:wq
写下当前文件(即使它没有更改)并退出。当文件是只读的或缓冲区没有名称时,写入失败。所有窗口:wqa[ll]
*。:wq!
同样,但写入只读文件。所有窗口:wqa[ll]!
*。:x[it]
,ZZ
(details)。只写文件(如果已更改)并退出,:xa[ll]
*表示所有窗口。放弃更改并退出:
:q[uit]!
ZQ
*在没有写入的情况下退出,当可见缓冲区发生更改时也是如此。更改隐藏缓冲区时不退出。 :qa[ll]!
*,:quita[ll][!]
*退出Vim,缓冲区的所有更改(包括隐藏)都将丢失。按返回确认命令。
此答案未引用所有Vim写入和退出命令和参数。实际上,它们在Vim documentation中被引用。
Vim有广泛的内置帮助,输入 Esc :help
返回打开它。
<子> 这个答案的灵感来自other one,最初由@dirvine撰写,并由其他SO用户编辑。我已经从Vim参考,SO评论和其他一些来源中包含了更多信息。 Vi和Vim的差异也反映出来。 子>
答案 2 :(得分:137)
图片值得一千个Unix命令和选项:
我每个学期都会向学生画这个,然后他们似乎抓住了vi。
vi是finite state machine,只有三个州。
启动后,vi进入COMMAND模式,您可以在其中键入短,少数字符命令,盲目。你知道你在做什么;这对业余爱好者来说并非如此。
当您想要实际编辑文本时,您应该使用一些单字符命令进入INSERT模式:
现在,回答这个问题:退出。
您可以从EX模式退出vi:
w
和x
接受文件名参数。如果您使用文件名启动vi,则无需再次在此处提供。
最后,最重要的是:如何达到EX模式?
EX模式适用于长命令,您可以在屏幕底部看到输入。在命令模式下,您推送冒号:
,冒号将出现在底行,您可以在其中键入上述命令。
从INSERT模式,您需要按ESC,即退出按钮,进入COMMAND模式,然后:进入EX模式。
如果您不确定,请按ESC键,这将使您进入命令模式。
因此,健壮的方法是ESC - : - x-Enter,它会保存您的文件并退出。
答案 3 :(得分:71)
如果您想在不保存Vim 的情况下退出并且让Vim返回非零退出代码,则可以使用:cq
。
我一直都在使用这个,因为我不能为!
的小拇指转移而烦恼。我经常将东西送到Vim,不需要保存在文件中。我们还有一个奇怪的SVN包装器,必须以非零值退出才能中止检查。
答案 4 :(得分:40)
这是针对退出Vim的最糟糕情况,如果你只是想要,不知道你做了什么,而且你不关心你打开的文件会发生什么。
控制-C 输入 输入 $ret = new \stdClass();
输入 控制 - \ CTRL-N stdClass
输入
这应该会让你在大部分时间出门。
一些有趣的案例,你需要这样的东西:
vi
Ctrl-o :qa!
(您进入插入模式,然后是可视模式,然后是操作员暂挂模式)
i
输入
vg
控制邻 Qappend
CTRL-R i
CTRL-K (感谢本案的porges)
gQ
(这是 Ctrl - \ Ctrl-n 让您恢复正常模式的情况)
编辑:由于上述情况,此答案已得到纠正。它曾经是:
ESC ESC ESC =
输入
但是,如果您已进入Ex模式,则不起作用。在这种情况下,您需要这样做:
:set insertmode
输入 :qa!
输入
完全掌握&#34;我不想知道我做了什么,我不想保存任何东西,我现在只想出去!&#34;会是
vi
输入 ESC ESC ESC :qa!
输入
答案 5 :(得分:36)
如果你需要在简易模式下退出Vim (使用-y
选项时),你可以点击 Ctrl + 进入正常的Vim模式L 然后任何正常的退出选项都可以。
答案 6 :(得分:27)
Vim有三种操作模式:输入模式,命令模式和输入模式。 Ex模式。
输入模式 - 您输入的所有内容,所有击键都会在屏幕上回显。
命令模式或退出模式 - 您在此模式下键入的所有内容都将被解释为命令。
Ex模式 - 这是另一个编辑器,例如。这是一个行编辑器。它适用于每行或基于一系列行。在此模式下,屏幕底部会出现:。这是前编辑。
要退出Vim,您可以在ex模式或命令模式下退出。当您处于输入模式时,无法退出Vim。
退出ex模式
您需要确保处于命令模式。为此,只需按 Esc 键即可。
按:键进入ex模式
在ex模式下使用以下任意组合退出:
:q
- 退出
:q!
- 退出而不保存
:wq
- 保存&amp;退出或写作&amp;放弃
:wq!
- 与wq相同,但强制写入以防文件权限是只读的
:x
- 写作&amp;放弃
:qa
- 退出所有人。在打开多个文件时非常有用,例如:vim abc.txt xyz.txt
退出命令模式
按退出键。如果您处于命令模式,则可能已经完成了此操作。
按资本ZZ(shift zz
) - 保存&amp;出口
按资本ZQ(shift zq
) - 退出而不保存。
答案 7 :(得分:25)
在我的计算机上按 ESC (或 cmd + C )后,必须按:命令提示出现。然后,您可以输入quit
。
您可能会发现机器不允许您退出,因为您的信息尚未保存。如果您还想退出,请在退出后直接输入!(即:quit!
)。
答案 8 :(得分:18)
退出vim
实际上非常容易。
按 Escape ,转两次,踢猫,煮一杯完美的茶,跑four minute mile,攀登珠穆朗玛峰,将Kessel Run放在12岁以下{ {3}},解救parsecs,声明Kobayashi Maru,达到iron throne,然后按:q
Enter
答案 9 :(得分:16)
我通过在Windows上安装Git客户端获得了Vim。 :q
我不会退出Vim。然而:exit
确实......
答案 10 :(得分:5)
带有数字的q
命令将关闭该位置的给定分割。
:q<split position>
或:<split position>q
将关闭该位置的拆分。
假设您的Vim窗口布局如下:
-------------------------------------------------
| | | |
-------------------------------------------------
| | | |
| | | |
| Split 1 | Split 2 | Split 3 |
| | | |
-------------------------------------------------
如果运行q1
命令,它将关闭第一次拆分。 q2
将关闭第二次拆分,反之亦然。
quit命令中拆分位置的顺序无关紧要。 :2q
或:q2
将关闭第二次拆分。
如果传递给命令的分割位置大于当前分割的数量,它将只关闭最后一次分割。
例如,如果在上面的窗口设置中运行q100
,只有三个分割,它将关闭最后一个分割(分割3)。
答案 11 :(得分:5)
以下是退出Vim的方法。按Ctrl&amp; 'Z'然后'X'和'C'。
Ctrl -> +Z -> +X -> +C
答案 12 :(得分:0)
一种保证的方法是杀死运行 vim 的端口
! kill - 9 $(ps | grep vim | cut -d " " -f 1)