emacs作为其他应用程序的外部编辑器(Houdini,Joplin)

emacs作为其他应用程序的外部编辑器(Houdini,Joplin),emacs,sublimetext3,external-application,Emacs,Sublimetext3,External Application,我正在尝试将emacs用作其他应用程序的编辑器,这些应用程序允许人们在编辑器中打开文本(在本例中为升华),保存文本,并在应用程序中看到文本更新。例如,在三维软件Houdini中,我可以在外部编辑器中键入代码(在本例中为升华)、修改、保存。。。并在应用程序(Houdini)中查看它的更新。当我使用emacs时,它不起作用。例如,我在Houdini中添加了一行使用Sublime的文本: 保存并关闭后,文本将在Houdini中更新,我可以继续工作: 尽管我可能会尝试,但我无法在emacs中实现这一

我正在尝试将emacs用作其他应用程序的编辑器,这些应用程序允许人们在编辑器中打开文本(在本例中为升华),保存文本,并在应用程序中看到文本更新。例如,在三维软件Houdini中,我可以在外部编辑器中键入代码(在本例中为升华)、修改、保存。。。并在应用程序(Houdini)中查看它的更新。当我使用emacs时,它不起作用。例如,我在Houdini中添加了一行使用Sublime的文本:

保存并关闭后,文本将在Houdini中更新,我可以继续工作:

尽管我可能会尝试,但我无法在emacs中实现这一点。我确信该文件具有相同的名称,当我保存时,它确认了正确的文件路径。
我错过了什么?我在一个名为Joplin的应用程序中遇到了同样的问题:Sublime工作,emacs不工作。

猜测:emacs在保存文件时与Sublime有不同的行为,Houdini对此感到困惑

在Emacs中保存文件时,Emacs会创建文件先前内容的备份,并在文件名后面加上波浪号。默认情况下,它会将现有文件重命名为备份名称,然后将内容写入实际文件名,从而创建一个新文件

(您可以通过在之前和之后运行
ls-i
来观察这一点:备份文件将具有主文件以前拥有的inode编号。请注意,Emacs在同一编辑器会话中的第一次保存后不会进行备份,因此您可能需要重新启动Emacs或使用
C-x k
终止缓冲区以查看此。)

我怀疑Houdini在Emacs编辑文件时保持打开状态,因此当您从Emacs保存文件时,Houdini打开的文件实际上是备份文件

通过将变量
backup by copy
设置为
t
,可以将Emacs配置为通过复制而不是重命名来进行备份。将此文件添加到
~/.emacs
文件(如果不存在则创建):


您正在寻找
全局自动还原模式
?“全局自动还原模式是一种全局次要模式,当文件在磁盘上更改时,它会还原与文件相关的任何缓冲区”我不确定这是否是一个崇高的文本问题,因为问题似乎与让一些外部软件运行Emacs有关;它在Sublime中工作这一事实似乎是偶然的。我同意:它是关于外部应用程序的协议,用于如何调用编辑器以及如何处理结果。我怀疑胡迪尼论坛上的一个问题(如果存在这样的问题)将是更有效的方法。顺便说一句,假设您有一个长期运行的emacs,我建议您在emacs会话中启动
M-x服务器
,然后使用
EmacClient
作为
编辑器
。感谢您的回复。Sublime是一个按预期工作的编辑器示例。Emacs(我更喜欢使用)不是。在胡迪尼论坛上发帖也无济于事:胡迪尼正在按要求打开一个特定的编辑器。问题是emacs没有写出发送回应用程序(在本例中为Houdini和Joplin)的临时文件,而Sublime在两个应用程序(Houdini和Joplin)中都能立即正常工作。然而,Houdini人仍然有机会遇到问题并知道答案。无论如何,@Legossia下面的回答都是真实的,所以请尝试一下,让我们知道。如果它有效,你也可以将问题和解决方案通知霍迪尼人,这样将来你会找到答案,感谢你提出问题,感谢莱戈西亚提供答案(如果答案确实正确)。
(setq backup-by-copying t)