如何暂时退出 Vim 并返回
Posted
技术标签:
【中文标题】如何暂时退出 Vim 并返回【英文标题】:How to temporarily exit Vim and go back 【发布时间】:2010-12-25 03:40:25 【问题描述】:我怎样才能退出 Vim,而不是 :q
,然后返回继续编辑?
【问题讨论】:
【参考方案1】:假设终端 Vim 是 *nix 风格的:
暂停正在运行的 Vim
Ctrl + Z
将暂停进程并返回您的 shell
fg
将恢复(带至foreground)您暂停的 Vim。
启动一个新的shell
使用以下命令启动子shell:
:sh
(根据配置)
:set shell?
或
:!bash
接着是:
Ctrl+D(或exit
,但为什么要输入这么多?)
杀死shell并返回Vim。
【讨论】:
ps
查看前台进程unix.stackexchange.com/questions/6115/…
如果我想在编辑文件的同时继续运行我的服务器怎么办。例如,假设我做nodemon app.js
(nodemon 为您刷新文件编辑服务器)然后我想返回我的 vim 编辑。如果没有两个单独的终端窗口,我可以这样做吗?
或 jobs
以(对我而言)更易读的标题访问前台进程。然后例如fg %2
选择第二个。
如果这对您不起作用并且control-z
充当“撤消”功能,请检查您的vimrc 以查看behave mswin
是否存在。如果将其删除,control-z
将起作用
在windows中输入exit
可以回到vim【参考方案2】:
您可以使用 :sh
退出到您的默认 shell,然后在 shell 提示符下输入 $ exit
将返回到 Vim。
【讨论】:
我希望我能更努力地投票。这正是 :shell 存在的原因。 公平地说,有时您想要相同的环境,而不是子shell环境。因此,如果您正在寻找完全退出 Vim 时对环境变量的更改,您将需要 CTRL-z/:sus。 可以在调用$ exit
之前使用$ ps
来查找我们是否在vim子shell中,以避免意外关闭终端。找到了这个here(网站上提到的提示符我没试过)。【参考方案3】:
您可以通过以下方式临时切换到 shell 模式:
:! <command>
比如
:! ls
【讨论】:
【参考方案4】:您也可以通过 :sus
执行此操作,以通过 fg
进入 shell 并返回。
如果你经常需要在 shell 和 vim 之间来回切换,可能你真正想要的是在 shell 中只有一个 vim 实例,并用它来打开工作区中的任何文件。如果是这样,请检查this 问题。正确设置后,您可以 :sus
或 C-z
返回 shell,然后只需 v
或 v <newfile>
即可返回 vim。
而我的answer 几乎是我的日常。
【讨论】:
【参考方案5】:如果你在 Unix 系统上,Ctrl + Z 会挂起 Vim 并给你一个 shell。
输入fg
返回。请注意,Vim 在编辑时会创建一个交换文件,并且暂停 Vim 不会删除该文件(毕竟你并没有退出 Vim)。在哑终端上,这种方法对于使用vi 的编辑-编译-编辑循环来说是相当标准的。我刚刚发现,对我来说,gVim 可以最大限度地减少键入 Z。
【讨论】:
【参考方案6】:如果您使用的是Neovim,您可以执行以下操作:
:terminal
命令打开一个终端窗口。
做你的终端工作
输入exit
杀死终端进程
按任意键返回 Neovim
【讨论】:
【参考方案7】:有几种方法可以退出 Vim 并在返回时保持一切不变。 Vim 本身有很好的文档解释了可以完成的各种方法。您可以在 vim 中使用以下命令访问相关帮助页面::help usr_21
为了给你一个简短的总结,以下是在你的会话完好无损的情况下退出和返回的不同方法:
暂停和恢复 - 你实际上并没有因此退出 Vim;您只需将会话隐藏在后台,直到您需要它。如果您重置计算机或向 Vim 发出终止命令,您将丢失会话。当您想暂时切换到另一个任务时,这很有用,但如果是这种情况,那么您可能需要考虑改用 GNU Screen utility。
Sessions - 这是在 Vim 实例之间保存会话的真正方法。即使你真的退出了 Vim,当你回来时,你的会话也会在那里。这可能就是您要找的。p>
【讨论】:
【参考方案8】:要扩展 user Zen's answer,您可以在 ~/.vimrc
文件中添加以下行,以便在 Bash 和 Vim 之间快速切换:
noremap <C-d> :sh<cr>
【讨论】:
五年后我只想提一下,使用 C-d 可能是个坏建议,因为它会覆盖 Vim 的默认行为。 ctrl-d scoll 窗口默认朝向缓冲区。见vimdoc.sourceforge.net/htmldoc/scroll.html#CTRL-D【参考方案9】:只需输入fg
并返回您最近暂停的程序。
【讨论】:
【参考方案10】:如果您不介意使用鼠标:
启动终端, 选择一个文件, 选择打开标签。这会在终端上创建一个新选项卡,您可以在该选项卡上运行 Vim。现在使用鼠标移入/移出终端。我更喜欢这个,而不是总是必须输入(:shell
并退出)。
【讨论】:
以上是关于如何暂时退出 Vim 并返回的主要内容,如果未能解决你的问题,请参考以下文章