我迫切希望通过单击 Dock 中的图标来打开一个新的 MacVim 实例,以便它打开来自我的 OneDrive 目录的通配符文件列表。
一个技巧是使用 Automator 运行 bash shell 脚本,如下所示:
open -a MacVim.app -n --args --cmd "cd $HOME/OneDrive/Notes" journal-*
这种方法的问题在于,shell 在 open 的当前工作目录上下文中翻译“*”。但是,如果我尝试:
cd $HOME/OneDrive/Notes && open -a MacVim.app -n --args --cmd "cd $HOME/OneDrive/Notes" journal-*
这也无法按预期工作。文件名已正确扩展,但open
在启动 MacVim 时会切换回主目录,因此它会尝试在主目录中打开文件名。这似乎与手册页相矛盾,手册页指出应用程序会继承所有环境设置。显然它并不是真的那么想。
在 Linux 和 Windows 上很简单的事情在 OSX 上却似乎极具挑战性。这里肯定有一个简单的解决方案吧?
另一个解决方案涉及 xargs 和 find,但 MacOS 中的版本相当过时(按照 GNU/Linux 标准)。
答案1
我还没有尝试使用 Automator 执行此操作(当我想将自定义脚本制作成“应用程序”并通过 Dock 等启动它时,我会使用 Platypus),而且我是一个 XEmacs 用户 :-)。但是,看看你的命令,这可行吗?
open -a MacVim.app -n --args $HOME/OneDrive/Notes/journal-*