已经运行的MacVim实例和Mutt之间的通信失败

时间:2014-10-29 18:55:09

标签: vim mutt

我正在使用mutt电子邮件客户端,并尝试使用MacVim作为我的编辑器。我已设置editor = "mvim --remote"--remote的{​​{1}}选项会在现有的MacVim实例中打开一个文件,而不是打开一个新窗口。虽然这在我现有的MacVim实例中成功打开了一个文件,但有两个问题:

  • mutt立即显示消息“Aborted unmodified message。”,尽管打开了MacVim缓冲区
  • 标题没有出现在MacVim缓冲区的顶部(即使我的mutt配置中有mvim)。
  • 当我用set autoedit关闭文件时,mutt没有检测到它 - 它只是继续显示“Aborted unmodified message。”

这些问题表明mutt能够发信号通知MacVim打开一个新文件,但无论如何都无法从该文件读取/写入,立即检测到这一点,并认为该消息已中止。如果我使用普通:wqmvim,我会看到相同的问题。但mvim -f --remote效果很好 - 我的问题是MacVim的启动时间因为所有加载的插件而烦人。有人可以解释MacVim和Mutt之间通信的机制,以及是否有办法使用已经打开的MacVim实例作为编辑器?

2 个答案:

答案 0 :(得分:1)

问题是,mutt生成编辑器并等待它完成。完成后,它会检查初始文件是否已被修改,如果没有,则会提供有关未修改消息的错误消息,以便中止。 在你的情况下,vim只是向另一个Vim实例发送一个远程编辑命令,然后退出,这让mutt认为,你已经完成了编辑你的消息,因为你还没有触及消息,它就会中止。

不幸的是,我没有针对您的问题的解决方案。你需要一个脚本,它在后台产生vim并保持活着直到你完成文件。但不确定,它是如何发现的。

答案 1 :(得分:0)

我不确定为什么确切地说这是有效的,但我能够通过

获得所需的功能
set editor = "mvim --remote-wait"

这样可以在MacVim中正确打开消息缓冲区。删除缓冲区后,mutt将恢复访问新创建的消息。