我被困住了,无法逃脱。它说:
"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:help
Return以打开它。
这个答案是由另一个答案启发的,该答案最初由@dirvine编写,并由其他SO用户编辑。我从Vim参考资料,SO注释和其他一些来源中获得了更多信息。Vi和Vim的差异也被反映出来。
如果您想退出而不保存在Vim中并使 Vim返回非零退出代码,则可以使用:cq
。
我一直用这个,因为我不会被困扰于平淡的转变!
。我经常将不需要保存在文件中的内容通过管道传送到Vim。我们也有一个奇怪的SVN包装器,该包装器必须以非零值退出才能中止签入。
:q!
工作正常,因为git检查非空消息而不是非零退出代码。
这是在最坏的情况下退出Vim的情况,如果您只是想退出,不知道自己做了什么,并且不在乎打开的文件会发生什么。
Ctrl-cEnterEntervi
EnterCtrl-\Ctrl-n:qa!
Enter
这应该使您大部分时间都无法使用。
在一些有趣的情况下,您需要这样的东西:
i
Ctrl-ovg
(您进入插入模式,然后进入可视模式,然后进入操作员待命模式)
Qappend
Enter
i
Ctrl-ogQ
Ctrl-r=
Ctrl-k (感谢本案的烦恼)
:set insertmode
(这种情况会在Ctrl-\Ctrl-n您返回正常模式时出现)
编辑:由于上述情况,此答案已得到纠正。它曾经是:
EscEscEsc:qa!
Enter
但是,如果您进入了Ex模式,那将不起作用。在这种情况下,您需要执行以下操作:
vi
Enter:qa!
Enter
因此,有一个完整的命令:“我不想知道自己做了什么,也不想保存任何东西,我现在就想出去!” 将会
vi
EnterEscEscEsc: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 -version
7.3)。
Git Bash
Windows,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)。