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

Chr*_*ler 4 macos vim bash shell applescript

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

#!/bin/sh
file="some-file.txt"
mvim $file
cat $file | pbcopy
Run Code Online (Sandbox Code Playgroud)

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

如果使用普通的 shell 脚本无法做到这一点,我愿意接受其他任何想法。(AppleScript 等)

ben*_*her 5

设置自动命令以在 vim(或 mvim)退出时执行命令。我测试过

$ mvim -c 'au VimLeave * !cat % | pbcopy' /tmp/bar.txt
Run Code Online (Sandbox Code Playgroud)

使用时间要短一些pbcopy < %

小心你的要求。您可能会更改缓冲区,并%在 vim 退出时引用该文件。也许这会更安全:

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