我被困住了,无法逃脱。它说:
"type :quit<Enter> to quit VIM"
但是当我键入它时,它只是出现在对象主体中。
:quit,然后按下[ENTER]键。
                git commit日后将您发送到Vim:                             git config --global core.editor="nano"
                我被困住了,无法逃脱。它说:
"type :quit<Enter> to quit VIM"
但是当我键入它时,它只是出现在对象主体中。
:quit,然后按下[ENTER]键。
                git commit日后将您发送到Vim:                             git config --global core.editor="nano"
                Answers:
点击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命令进行访问-在这里您可以找到所有问题的答案以及针对初学者的教程。
:x== ZZ但是:x!= :wq。:x如果文件已更改,则:wq写入文件,始终写入文件(注意,即使用时inotify)。
                    :w ! sudo tee %
                    图片值得一千个Unix命令和选项:
我每学期将其吸引到我的学生那里,他们似乎后来掌握了vi。
vi是只有三个状态的有限状态机。
启动后,vi进入COMMAND模式,您可以在其中盲目地键入简短的字符命令。你知道你在做什么;这不适合业余爱好者。
当您想实际编辑文本时,应使用一些单字符命令进入INSERT模式:
现在,回答问题:退出。
您可以从EX模式退出vi:
w并x接受文件名参数。如果以文件名开头vi,则无需在此处再次输入。
最后,最重要的是:如何进入EX模式?
EX模式适用于长命令,您可以在屏幕底行看到键入内容。在COMMAND模式下,按冒号,:冒号将出现在底行,您可以在其中键入上述命令。
在INSERT模式下,您需要按ESC键(即Escape键),进入COMMAND模式,然后按:进入EX模式。
如果不确定,请按ESC,这将使您进入命令模式。
因此,健壮的方法是ESC-:-x-Enter,它可以保存文件并退出。
w并没有从Ex更改为Command模式,而是更改了Esc。我究竟做错了什么?
                    :w。那就很有意义了。顺便说一句,是否有命令从磁盘重新加载(即,还原更改但不关闭文件)?如果是这样,它可能w在图中的旁边。
                    :e(或者更有可能是:e!因为它会警告您有关没有保存的未保存更改!)
                    输入命令之前,请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:helpReturn以打开它。
这个答案是由另一个答案启发的,该答案最初由@dirvine编写,并由其他SO用户编辑。我从Vim参考资料,SO注释和其他一些来源中获得了更多信息。Vi和Vim的差异也被反映出来。
如果您想退出而不保存在Vim中并使 Vim返回非零退出代码,则可以使用:cq。
我一直用这个,因为我不会被困扰于平淡的转变!。我经常将不需要保存在文件中的内容通过管道传送到Vim。我们也有一个奇怪的SVN包装器,该包装器必须以非零值退出才能中止签入。
:q!工作正常,因为git检查非空消息而不是非零退出代码。
                    这是在最坏的情况下退出Vim的情况,如果您只是想退出,不知道自己做了什么,并且不在乎打开的文件会发生什么。
Ctrl-cEnterEnterviEnterCtrl-\Ctrl-n:qa!Enter
这应该使您大部分时间都无法使用。
在一些有趣的情况下,您需要这样的东西:
iCtrl-ovg (您进入插入模式,然后进入可视模式,然后进入操作员待命模式)
QappendEnter
iCtrl-ogQCtrl-r=Ctrl-k (感谢本案的烦恼)
:set insertmode(这种情况会在Ctrl-\Ctrl-n您返回正常模式时出现)
编辑:由于上述情况,此答案已得到纠正。它曾经是:
EscEscEsc:qa!Enter
但是,如果您进入了Ex模式,那将不起作用。在这种情况下,您需要执行以下操作:
viEnter:qa!Enter
因此,有一个完整的命令:“我不想知道自己做了什么,也不想保存任何东西,我现在就想出去!” 将会
viEnterEscEscEsc:qa!输入
:q或:wq
                    i<Ctrl-O>gQ<Ctrl-R>=<Ctrl-K>怎么办?
                    如果您需要以简单模式(使用-y选项时)退出Vim,则可以通过按Ctrl+ 进入正常Vim模式L,然后任何正常的退出选项都将起作用。
Ctrl+O暂时退出INSERT模式,然后输入:q。这种组合的技巧在正常vim中也很有用,它可以执行单个命令并返回到INSERT模式。
                    Vim具有三种操作模式:输入模式,命令模式和Ex模式。
输入模式 -您键入的所有内容,所有击键都会在屏幕上回显。
命令模式或转义模式 -在此模式下键入的所有内容均被解释为命令。
防爆模式 -这是另一个编辑器,例如。它是行编辑器。它每行或基于一系列行工作。在此模式下,a :出现在屏幕底部。这是前任编辑。
为了退出Vim,您可以在ex模式或命令模式下退出。在输入模式下,不能退出Vim。
从ex模式退出
您需要确保您处于命令模式。为此,只需Esc按键。
:按键进入防爆模式
在ex模式下使用以下任意组合退出:
:q-退出
 :q!-退出但不保存
 :wq-保存并退出或写入并退出
 :wq!-与wq相同,但如果文件权限为只读,则强制写入
 :x-写入并退出
 :qa-退出所有。当打开多个文件时很有用:vim abc.txt xyz.txt
从命令模式退出
按退出键。如果您处于命令方式,则可能已经完成了。
按大写字母ZZ(shift zz)-保存并退出
按大写字母ZQ(shift zq)-不保存即退出。
我通过在Windows上安装Git客户端来获得Vim。:q不会为我退出Vim。:exit但是...
vim -version7.3)。
                    Git BashWindows,Vim有时ESC无法正常工作。使用CTRL+ [代替。
                    ^[的相同ESC。Windows使其变得更加复杂,这很有趣。和有趣。
                    q带数字的命令将在该位置关闭给定的拆分。
:q<split position>或:<split position>q将在该位置关闭拆分。
假设您的Vim窗口布局如下:
-------------------------------------------------
|               |               |               |
-------------------------------------------------
|               |               |               |
|               |               |               |
|    Split 1    |    Split 2    |     Split 3   |
|               |               |               |
-------------------------------------------------
如果运行q1命令,它将关闭第一个拆分。q2将关闭第二个拆分,反之亦然。
quit命令中拆分位置的顺序无关紧要。:2q或:q2将关闭第二个拆分。
如果传递给命令的拆分位置大于当前拆分的数量,则它将仅关闭最后一个拆分。
例如,如果q100在只有三个拆分的上述窗口设置上运行,它将关闭最后一个拆分(拆分3)。