以编程方式确定 MacVim 何时完成文件编辑



我想编写一个脚本,使用 MacVim 打开指定的文件,然后等到文件关闭后再继续。我最初的想法是:

#!/bin/sh
file="some-file.txt"
mvim $file
cat $file | pbcopy

这将使用 MacVim 打开指定的文件,并立即执行下一个命令。我一直在想一些令人难以置信的黑客lsof但我希望有更好的方法。

如果使用纯 shell 脚本无法做到这一点,我对其他任何事情的想法持开放态度。(AppleScript等)

设置一个自动命令,以便在 vim(或 mvim)退出时执行命令。 我用

$ mvim -c 'au VimLeave * !cat % | pbcopy' /tmp/bar.txt

使用pbcopy < %有点短。

小心你的要求。 您可以更改缓冲区,% 是指 vim 退出时的文件。 也许这会更安全:

$ mvim -c 'execute "au VimLeave * !pbcopy < " . expand("%")' /tmp/bar.txt

MacVim 有一个选项,可以在启动时不分叉:

-f  or  --nofork     Foreground: Don't fork when starting GUI

通过mvim --help

对于上述脚本,以下工作:

#!/bin/sh
file="some-file.txt"
mvim --nofork $file
cat $file | pbcopy

GVim也有一个相同的选项:

--nofork     Foreground. For the GUI version, Vim will not fork and
             detach from the shell it was started in.

通过man gvim

相关内容

  • 没有找到相关文章

最新更新