我如何退出Vim,而不是:q,然后返回继续编辑?
:q
你可以通过以下方法暂时切换到shell模式:
:! <command>
如
:! ls
如果你是在Unix系统上,Ctrl + Z将挂起Vim并给你一个shell。
输入fg返回。注意,Vim在编辑时创建一个交换文件,挂起Vim不会删除该文件(毕竟你并没有退出Vim)。在哑终端上,这个方法对于使用6的编辑-编译-编辑循环来说是相当标准的。我刚刚发现,对我来说,gVim最小化键入Z。
fg
假设终端Vim是*nix类型:
__abc0 + __abc1
将暂停进程并返回到您的shell
将恢复(带到foreground)您暂停的Vim。
使用以下命令启动子shell:
:sh
(由)
:set shell?
:!bash
紧随其后的是:
Ctrl+D(或exit,但为什么键入这么多?)
exit
杀死外壳并返回Vim。
有几种方法可以退出Vim,并且当您返回时一切都是一样的。在Vim本身中有非常好的文档解释了实现这一点的各种方法。您可以在vim中使用以下命令来访问相关的帮助页面
为了给你一个简单的总结,这里有不同的退出和返回的方法,而你的会话完好无损:
暂停和恢复——你实际上不会退出Vim;您只需将会话隐藏在后台,直到您需要它。如果您重置计算机或向Vim发出kill命令,您将失去会话。当您想暂时切换到另一个任务时,这是很好的,但如果是这种情况,那么您可能想要考虑使用GNU Screen utility代替。
会话——这是在Vim实例之间保存会话的真正方法。即使您真的退出了Vim,当您返回时,您的会话仍然存在。这可能就是你要找的。
你可以使用:sh退出到你的默认shell,然后在shell提示符下输入$ exit将返回到Vim。
$ exit
你也可以通过:sus进入shell,然后通过fg返回。
:sus
如果您经常需要在shell和vim之间来回切换,那么您真正想要的可能是在shell中只有一个vim实例,并使用它来打开工作区中的任何文件。如果是,检查这问题。一旦你正确地设置了它,你可以:sus或C-z返回到shell,然后只需v或v <newfile>返回到vim。
C-z
v
v <newfile>
我的回答几乎是我的日常工作。
为了扩展user Zen的答案,你可以在你的~/.vimrc文件中添加下面的行来允许在Bash和Vim之间快速切换:
~/.vimrc
noremap <C-d> :sh<cr>
只要输入fg,然后回到你最近暂停的程序。
如果你正在使用Neovim,你可以做以下事情:
:terminal
如果你不介意用一下鼠标:
这将在终端上创建一个新选项卡,您可以在该选项卡上运行Vim。现在使用鼠标移到/移出终端。我更喜欢这样,而不是总是必须键入(:shell和退出)。
:shell