我被困住了,无法逃脱。它说:
1
| "type :quit<Enter> to quit VIM" |
但当我输入它时,它只是出现在对象体中。
- 你只是想退出维姆吗?如果是这种情况,请按"escape",然后键入":q"
- 别忘了结肠!您应该键入:quit,然后按[ENTER]键。
- 学习VIM的基础知识真的很容易,而且它就构建在您的系统中。在终端类型"VIMStutor"中。25分钟后,你将比你通常的文本编辑器快!
- 在这里检查更多命令。
- 为了防止将来git commit派你去VIM:git config --global core.editor="nano"。
- 还没有提到;但是如果您在一个GUI中工作,您可以使用gvim并关闭窗口。(如果有未保存的更改,将提示保存/放弃/取消)。
- @Toni为什么不使用可打印的单页备忘单?常规QWERTY版本和DVORAK。
- 从命令行,您可以在输入vim时立即退出它:vim --cmd q。这可以与-V选项一起使用:vim -V20vim.log --cmd exe +q。新创建的vim.log可用于诊断/调试目的。
- @汤凯利非常感谢它帮助了我,但它实际上是带空格的git config --global core.editor"nano",而不是=符号。
按esc键进入"正常模式"。然后输入:进入"命令行模式"。一个冒号(:将出现在屏幕底部,您可以输入以下命令之一。要执行命令,请按enter键。
- :q退出(简称:quit)
- :q!不存钱退出(简称:quit!)
- :wq写并退出
- 即使文件只有读取权限(如果文件没有写入权限:强制写入),也要执行:wq!的写入和退出操作。
- :x写入并退出(类似于:wq,但只有在发生变化时才写入)
- :exit写入退出(同:x)
- :qa退出all(简称:quitall)
- :cq不保存退出,使vim返回非零错误(即带错误退出)
您也可以直接从"正常模式"退出VIM,方法是键入ZZ保存并退出(与:x相同),或键入ZQ只退出(与:q!相同)。(注意,这里的情况很重要。ZZ和ZZ的意思不同。)
Vim有广泛的帮助-您可以使用:help命令访问-在这里您可以找到所有问题的答案和初学者的教程。
- 除非您在.vimrc中重新映射了esc或有一个奇怪的映射,否则它绝对应该。如果在Linux上,键入xev,并确保当您点击escape时,escape是您得到的键类型。
- 记住,如果不能使用Esc,则可以使用ctrl+c(就像我一样,因为我的外壳位于totalTerminal中)。vim.wikia.com/wiki/avoid_the_escape_key
- :x==ZZ,但:x!=:wq。:x写入文件iff文件已更改,:wq始终写入文件(即使用inotify时)。
- 老实说,我使用VIM的帮助系统比使用VIM本身要困难,而且主要依赖于快速参考卡和在线文档。
- @bgvaughan我根本找不到Vim的帮助来发现和学习新特性。我纯粹把它当作参考。幸运的是,有书(实用的vim)和站点(学习vimscript是一种很难的方式)可以帮助我们,另外还有一个专门用于vim vi.stackexchange.com的堆栈交换站点)
- 第一条语句("按Esc键;进入命令模式")基于对vi(m)的常见误解。esc(如果需要)是当前命令的最后一部分,通过这种方式完成后,可以键入下一个命令。
- Esc仅在您仍处于输入模式时进入命令模式。如果您处于Ex模式,则不会:E492: Not an editor command: ^[:q。
- 这帮助我了解了vi编辑器的基本知识。
- :x!如前所述,但也增加了确认。我总是用这个来代替:wq!。
- 如果您对该文件没有权限,但拥有sudo权限:w ! sudo tee %。
- "保存并退出"和"写入并退出"有什么区别?
- 如果您对该文件只有只读权限,那么:wq!将不会写入该文件。如果发生这种情况,这将是操作系统中的一个安全缺陷。
- @Stevenvascellaro没有区别;写入文件并保存文件意味着完全相同的事情。
- 如果没有逃生钥匙怎么办??
- 使用ctrl [也可以做到这一点。
- 有时,Esc是不够的。您可能需要多次键入Esc才能确定。(例如,在插入模式下按^V或^O后)(当然,heikki对此进行了深入的介绍。)
- 你可以在:help中搜索,就像在其他窗口一样,通过键入/来搜索的出现。
在输入命令之前,请按esc键。输入后,点击return确认。
esc完成当前命令并将VIM切换到正常模式。现在,如果按:,屏幕底部将显示:。这确认您实际上是在输入命令,而不是在编辑文件。
大多数命令都有缩写,括号中包含可选部分:c[ommand]。
标有"*"的命令仅为VIM(在vi中未实现)。
安全退出(如果有未保存的更改,则失败):
- :q[uit]退出当前窗口。如果这是最后一个窗口,则退出VIM。当在当前缓冲区中进行了更改时,此操作将失败。
- :qa[ll]退出所有窗口和vim,除非有一些缓冲区已更改。
提示退出(如果有未保存的更改,则提示)
- :conf[irm] q[uit]退出,但当有一些缓冲区已被更改时给出提示。
- :conf[irm] xa[ll]*写入所有更改的缓冲区并退出vim。当某些缓冲区无法写入时,显示提示。
写入(保存)更改并退出:
- :wq写入当前文件(即使没有更改),然后退出。当文件为只读或缓冲区没有名称时,写入失败。适用于所有窗户。
- :wq!相同,但甚至写只读文件。适用于所有窗户。
- :x[it]、ZZ(含明细)。仅当文件被更改并退出时才写入该文件,对于所有窗口,为:xa[ll]*。
放弃更改并退出:
- :q[uit]!ZQ不写就退出,也在可见缓冲区发生变化时退出。在隐藏缓冲区发生更改时不退出。
- :qa[ll]!*、:quita[ll][!]退出vim,所有对缓冲区(包括隐藏)的更改都将丢失。
按return确认命令。
这个答案并没有引用所有vim write和quit命令和参数。实际上,它们在VIM文档中被引用。
VIM有广泛的内置帮助,键入escabkb:helpreturn打开它。
这个答案的灵感来自另一个,最初由@dirvine撰写,由其他SO用户编辑。我已经包含了来自VIM参考的更多信息,所以评论和一些其他来源。Vi和Vim的差异也反映了出来。
- 我认为我在VIM中使用的唯一命令是:x(用于保存和退出)和:q!。
图片价值一千个Unix命令和选项:
我每学期都给学生画这个,他们似乎在课后掌握了。
vi是一个只有三种状态的有限状态机。
一开始,vi就进入命令模式,在这里你可以盲目地输入短的、很少字符的命令。你知道你在做什么,这不是给业余爱好者的。
当您想要实际编辑文本时,您应该使用一个字符的命令进入插入模式:
- I:转到插入光标的位置
- I:行首进入插入模式
- A:在光标后追加
- A:在行尾附加
- o:在当前行下面打开一个新行
- O:在当前行的位置打开一个新行
现在,回答问题:退出。
您可以从Ex模式退出vi:
- 问:如果你没有做任何修改,或者事先保存了它们
- Q!:忽略任何修改并退出
- wq:保存并退出
- X:等于WQ
w和x接受一个文件名参数。如果您用一个文件名来启动vi,则不需要在这里再次给出它。
最后,最重要的一点是:如何才能达到Ex模式?
Ex模式用于长命令,您可以在屏幕的底线看到键入。在命令模式下,您按下冒号:,一个冒号将出现在底线,您可以在这里键入上述命令。
从插入模式,您需要按Esc,即退出按钮,进入命令模式,然后:进入Ex模式。
如果不确定,按Esc键,将进入命令模式。
所以,健壮的方法是esc-:-x-enter,它保存文件并退出。
- 谢谢,图片很有帮助。但是,对于我来说,w并没有从ex模式改变为command模式,但是Esc改变了。我做错什么了?
- 如果编写保存文件并返回命令模式的w-enter。我写它是为了全面了解save&quit命令。
- 哦,你是说:w。那就完全有道理了。顺便问一下,是否有从磁盘重新加载的命令(即,恢复更改但不关闭文件)?如果是这样,它可能在图中的w旁边。
- 您所标记的命令模式实际上是普通模式。您所标记的Ex模式实际上是命令模式。前模式是完全不同的野兽!
- @JPaugh你有这方面的参考资料吗?
- @格格利,我终于找到了VIM文档::help vim-modes。
- 关于Ex模式:"类似于命令行模式,但是输入命令后,您仍然处于Ex模式。"退出Ex模式(我知道)的唯一方法是使用:vi返回正常模式。只要输入一个命令,常规命令模式就会"释放"到正常模式。
- (fwiw,我以一种艰难的方式了解了ex模式:我意外地进入了它(好几次),并被困住,直到我使用^C或了解它。我从来没有忘记教训!;-)
- @JPaugh谢谢你的推荐信
- @格格利,我刚刚搞清楚了!在文档中,正常模式也称为命令模式!所以,命令模式!=命令行模式。真的!
- @nickvolynkin从磁盘重新加载的命令是:e(或者更可能是:e!,因为它会警告您没有!的未保存更改)。
- 我不知道O.G.vi(ex的视觉模式),但是在vim中,模式是normal、insert、Ex、command和visual。正常是默认模式,按:q将退出VIM。Ex模式模拟Ex,通过Q访问。命令模式通过:从正常和视觉模式访问,视觉/视觉线条/视觉块模式是一种整洁的模式,允许您突出显示文本并执行特殊操作(尝试ctrl-v并向下移动,直到为整个块选择最右边的列,然后按A进入插入模式并键入。文本将附加到您选择的每一行)
如果您想退出而不在vim中保存,并让vim返回非零退出代码,则可以使用:cq。
我一直在用这个,因为我不必为!而烦恼。我经常把不需要保存在文件中的东西通过管道发送给Vim。我们还有一个奇怪的SVN包装器正在工作,它必须以非零值退出才能中止签入。
- 我还使用它中止Git提交,或者visudo,或者crontab,…
这是最坏的情况下退出VIM,如果你只是想退出,不知道你做了什么,你不关心你打开的文件会发生什么。
Ctrl-CEnterEnterOCx1〔18〕enterCtrl-Ctrl-NOCx1〔19〕enter
这应该能让你大部分时间都出去。
一些有趣的案例需要这样的东西:
iCTRL-Ovg(先进入插入模式,再进入视觉模式,再进入操作员等待模式)
Qappendenter公司
ictrl-odocx1〔24〕ctrl-rabb=ctrl-k(多亏了这起案件的报道)
:set insertmode(这是CTRL-CTRL N返回正常模式时的情况)
编辑:由于上述情况,此答案已更正。过去是:
escescescab:qa!enter
但是,如果您已进入Ex模式,则此功能不起作用。在这种情况下,您需要:
vienterdocx1〔19〕enter
所以一个完整的命令,"我不想知道我做了什么,我不想保存任何东西,我现在就想出去!"将是
vienterbescskakbdskakb:qa!输入
- @Cavalcade这是一种非常普遍的方法,可以确保编辑器处于正常模式,然后安全地退出。在正常使用中,您所需要的是:q或:wq。
- 不够一般!如果我(初学者)输入igQ=会怎么样?
- @感谢您的测试用例!也有一些其他的测试案例证明了最初的方法是可悲的。我把答案编辑得更一般了。
- @Heikkinaski至少对我来说,我还需要在ctrl-c之后输入(以退出表达式寄存器)
如果您需要在简易模式下退出VIM(同时使用-y选项),您可以通过点击ctrl+l进入正常VIM模式,然后任何正常退出选项都将起作用。
- 还有一个选择:您可以使用Ctrl+O暂时退出插入模式,然后输入:q。这种组合的技巧在正常VIM中很有用,也可以执行单个命令并返回到插入模式。
VIM有三种操作模式:输入模式、命令模式和Ex模式。
输入模式-您输入的所有内容,所有按键都会在屏幕上回响。
命令模式或转义模式-在此模式中键入的所有内容都将解释为命令。
Ex模式-这是另一个编辑器,例如,它是一个线条编辑器。它每行或基于一系列行工作。在此模式下,屏幕底部会显示一个:。这是前编辑。
为了退出VIM,您可以在处于Ex模式或命令模式时退出。当处于输入模式时,不能退出VIM。
退出Ex模式
您需要确保您处于命令模式。为此,只需按esc键。
按:键进入Ex模式
在Ex模式下使用以下任意组合退出:
:q—退出:q!—不保存就退出:wq—保存和退出或写入和退出:wq!—与wq相同,但如果文件权限为只读,则强制写入:x—写入和退出:qa—全部退出。打开多个文件时很有用,如:vim abc.txt xyz.txt。
退出命令模式
按退出键。如果您处于命令模式,那么您可能已经完成了这项工作。
按大写zz(shift zz)—保存和退出
按大写ZQ(shift zq)—不存钱退出。
- 你所说的"Ex模式"实际上就是命令行模式。它允许您输入ex命令,但有一些重要的区别。
点击esc(或我的电脑上的cmd+c)后,必须点击:,命令提示才会出现。然后,您可以进入quit。
您可能会发现机器不允许您退出,因为您的信息尚未保存。如果仍要退出,请输入!退出后直接退出(即:quit!)。
我通过在Windows上安装Git客户端获得了Vim。:q不会帮我离开Vim。但是,:exit确实……
- 同样地,对于Vim在Macintosh上做Git,这是可行的。
- @乔尔刚在我的Mac上检查过这个,两个命令都是合法的(vim -version7.3)。
- 对于windows上的Git Bash,在Vim中,有时Esc不工作。用CTRL和[代替。
实际上,退出vim非常容易。
按escapebkbd,转两圈,踢猫,泡一杯完美的茶,跑四分钟英里,攀登珠穆朗玛峰,让凯塞尔跑在12秒以下,营救小林寺丸,夺取铁王座,获得世界和平,按:qenter
- 可能太简单了。我不认为这会永远退出。可能还需要第二次凯塞尔跑,再打几次逃跑。PS。虽然这听起来像是单次讽刺,但如果你是双次讽刺,而且实际上觉得这很容易,你应该看看这个问题有多少赞成票。
这是你如何离开维姆。按ctrl&;'z',然后按'x'和'c'。
- 这是做什么的?ctl-z在大多数UNIX操作系统上挂起。所以vim将被挂起,然后您将键入xc作为下一个命令。这似乎不正确。
- 实际上,我建议您安装VIM,并自行承担风险进行测试bro@datashaman。干杯
我想在这个上面加两分钱。这里有人问这个问题。
带编号的q命令关闭该位置的给定分割。
:q或:q将结束该位置的分割。
假设您的VIM窗口布局如下:
1 2 3 4 5 6 7 8
| -------------------------------------------------
| | | |
-------------------------------------------------
| | | |
| | | |
| Split 1 | Split 2 | Split 3 |
| | | |
------------------------------------------------- |
如果运行q1命令,它将关闭第一个拆分。q2将关闭第二个分割,反之亦然。
退出命令中的拆分位置顺序无关紧要。:2q或:q2将结束第二次分割。
如果传递给命令的拆分位置大于当前拆分的数目,则只会关闭最后一个拆分。
例如,如果您在上面的窗口设置上运行q100,其中只有三个拆分,它将关闭最后一个拆分(拆分3)。