如何配置 MacVim 以在退出时退出?

如何配置 MacVim 以在退出时退出?

当我使用标准 vim 命令关闭 MacVim 时:q,MacVim 窗口会关闭,但程序仍在运行。当其他进程尝试生成 MacVim 实例时,这会导致问题,因为如果它仍在运行,则需要向 MacVim 传递一个特殊标志,以便打开一个新实例,但随后实例会累积起来。

有没有办法使用 vimscript 来终止进程并在退出时关闭窗口?

答案1

如果你总是得到多个MacVim图标在你的码头,那么你可能想检查一下你是如何开始的MacVim:help macvim-start。具体来说,

请勿调用应用程序包内的 MacVim 二进制文件来启动 MacVim。

在命令行中,您通常会使用open -a MacVim filenamemvim filename1。在 GUI 中,您可以关联MacVim使用特定扩展名,将文件拖放到MacVim发现者或者码头或进入开放MacVim窗口,或者您可以使用“服务”菜单通过其他应用程序的选择来启动新缓冲区。还有mvim://URL 处理程序(请参阅:help mvim://)。

无论现有实例是否正在运行,这些方法都不需要任何特殊标志/选项,也不应该创建额外的MacVim图标码头

1 模因是附带的脚本MacVim;参见:help mvim。一旦将其安装在 PATH 目录中,您就可以使用它来编辑现有MacVim实例(如果尚未运行,则会启动一个)。


“最后一个窗口关闭后:”退出 MacVim常规选项卡中的选项MacVim的偏好(⌘,或MacVim>优先…) 可能就是您想要的。

如果你真的需要更具体的东西,那么你可以使用MacVim-自定义命令:macaction terminate:询问整个MacVim应用程序在任何可编写脚本的时刻退出。它应该相当于 ⌘Q 和MacVim>退出 MacVim菜单项(它们都将terminate:操作发送给应用程序的第一响应者);如果您修改了缓冲区,那么它会询问您是否要“仍然退出?”。

听起来您可能想通过自动命令将其连接到 VimLeave 事件:

autocmd VimLeave * macaction terminate:

答案2

看起来像是来自macvim-dev没有 mvim 脚本。我从b4wincklerrepo 并且它的工作方式如上所述。

相关内容