如何暂时退出Vim并返回


302

如何退出Vim而不是退出,:q然后返回以继续编辑?

Answers:


570

假设终端Vim具有* nix的风味:

暂停正在运行的Vim

Ctrl + Z

将暂停该过程并返回您的shell

fg

将恢复(带来˚F矿石轮)暂停的活力。

开始一个新的外壳

使用以下命令启动子shell:

:sh

(由配置)

:set shell?

要么

:!bash

其次是:

Ctrl+ D(或exit,但为什么要输入这么多?)

杀死外壳并返回Vim。



1
如果要在编辑文件时继续运行服务器该怎么办。例如,假设我做了nodemon app.js(nodemon为您刷新文件编辑的服务器),然后我想返回到vim编辑。没有两个单独的终端窗口,我可以这样做吗?
哥斯达黎加

5
jobs使用(对我来说)可读性更高的标题访问前台进程。然后例如fg %2选择第二个。
同构

如果这对您不起作用,并且control-z充当“撤消”,请检查您的vimrc以查看是否behave mswin存在。如果将其删除,control-z它将起作用
schuess

3
在Windows中,你可以得到回Vim如果键入exit
JonnyRaa

107

您可以使用:sh退出到默认的shell,然后$ exit在shell提示符下键入将使您返回Vim。


1
我希望我能更努力地投票。这就是为什么:shell存在的原因。
兰迪·莫里斯

8
公平地说,有时您想要的是相同的环境,而不是子外壳环境。因此,如果要在完全退出Vim时寻找对环境变量的更改,则需要CTRL-z /:sus。
Tango Bravo 2014年

可以用来$ ps在调用之前查找我们是否在vim子外壳中,$ exit以避免意外关闭终端。在这里找到(我还没有尝试过网站上提到的提示指示器)。
丹尼尔(Daniel)

34

您可以通过以下方式临时切换到外壳模式:

:! <command>

:! ls

14

如果您在Unix系统上,则Ctrl+ Z将挂起Vim并给您一个shell。

输入fg以返回。请注意,Vim在编辑时会创建一个交换文件,而挂起Vim并不会删除该文件(毕竟您不会退出Vim)。在哑终端上,此方法对于使用vi进行编辑-编译-编辑循环非常标准。我刚刚发现,对于我来说,gVim最小化了打字Z


13

您也可以通过:sus落入shell并返回来做到这一点fg


5

有几种退出Vim的方法,当您返回时,一切都相同。Vim内有很好的文档,解释了各种方法。您可以在vim中使用以下命令来访问相关的帮助页面::help usr_21

为了给您一个简短的摘要,以下是退出并返回完整会话的不同方法:

  1. 暂停和继续-您实际上并没有因此退出Vim;您只需在需要时将会话隐藏在后台即可。如果您重置计算机或向Vim发出kill命令,则将丢失会话。当您想暂时切换到另一个任务时,这很有用,但是如果是这种情况,那么您可能想研究使用GNU Screen实用程序

  2. 会话-这是在Vim实例之间保存会话的真实方法。即使您确实退出了Vim,返回时您的会话也将在那里。这可能是您要寻找的。




3

如果您使用Neovim,则可以执行以下操作:

  • :terminal 命令以显示终端窗口。
  • 做你的终端的东西
  • 键入exit杀死终端进程
  • 按任意键返回Neovim

0

如果您不介意使用鼠标一点:

  • 启动您的终端,
  • 选择一个文件,
  • 选择打开标签

这会在终端上创建一个新的选项卡,您可以在该选项卡上运行Vim。现在,使用鼠标移至/移出终端。我更喜欢这种方式,而不是总是必须输入(:shell并退出)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.