如何暂时退出vim并返回

Ric*_*cky 293 vim

我怎么能退出Vim,而不是:q,然后回去继续编辑?

zen*_*zen 551

假设终端vim的风格为*nix:

暂停正在运行的vim

Ctrl+Z

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

fg
Run Code Online (Sandbox Code Playgroud)

将恢复(带来˚F矿石轮)暂停的VIM

开始一个新的shell

使用以下命令启动子shell:

:sh
Run Code Online (Sandbox Code Playgroud)

(由配置)

:set shell?
Run Code Online (Sandbox Code Playgroud)

要么

:!bash
Run Code Online (Sandbox Code Playgroud)

其次是:

Ctrl+ D (或者exit,为什么键入这么多?)

杀死shell并返回vim

  • `ps`查看前台进程http://unix.stackexchange.com/questions/6115/viewing-foreground-process-using-ps (5认同)
  • 或`jobs`访问前台进程,使用(对我来说)更易读的标题.然后例如`fg%2`来选择第二个. (5认同)
  • 在Windows中,如果您输入`exit`,您可以回到vim。 (2认同)

Pie*_*tte 104

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

  • 公平地说,有时您需要相同的环境,而不是子shell环境.因此,如果您要在完全退出Vim时查找环境变量的更改,则需要CTRL-z /:sus. (8认同)
  • 我希望我能更努力地投票。这正是 :shell 存在的原因。 (2认同)

Jay*_*eng 33

您可以通过以下方式暂时切换到shell模式:

:! <command>
Run Code Online (Sandbox Code Playgroud)

:! ls
Run Code Online (Sandbox Code Playgroud)


Alo*_*hal 12

如果你在unix系统上,fg将暂停vim并给你一个shell.键入fg回去.请注意,fg在编辑时创建交换文件,暂停vim不会删除该文件(毕竟你没有退出vim).在哑终端上,这种方法对于编辑 - 编译 - 编辑循环是非常标准的fg.我刚刚发现,对我来说,fg最小化打字fg.


sol*_*tim 11

你也可以通过:sus落入shell并返回fg.

编辑:对不起,它的错字.


loe*_*chg 7

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

  • :terminal 命令调出终端窗口。
  • 做你的终端工作
  • 键入exit以终止终端进程
  • 按任意键返回 Neovim


小智 6

只需输入fg并返回到最近暂停的程序即可。


Swi*_*iss 5

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

为了给您一个简短的摘要,以下是在会话保持不变的情况下退出和返回的不同方法:

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

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


xaa*_*xaa 5

要扩展用户Zen的答案,您可以在~/.vimrc文件中添加以下行以允许在 Bash 和 Vim 之间快速切换:

noremap <C-d> :sh<cr>
Run Code Online (Sandbox Code Playgroud)