1

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

使用 Sublime 在外部编辑文本,步骤 1

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

在 Sublime 中输入并保存的文本,第 2 步,成功!

尽我所能,我不能让它在emacs中工作。我确定该文件具有相同的名称,并且当我保存时,它会确认正确的文件路径。我错过了什么?我在名为 Joplin 的应用程序中遇到了同样的问题:Sublime 有效,emacs 无效。

4

1 回答 1

2

一个疯狂的猜测:Emacs 在保存文件时的行为与 Sublime 不同,Houdini 对此感到困惑。

当您在 Emacs 中保存文件时,Emacs 会创建文件先前内容的备份,并在文件名后加上波浪号。默认情况下,它通过将现有文件重命名为备份名称,然后将内容写入真实文件名来执行此操作,从而创建一个新文件。

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

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

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

(setq backup-by-copying t)
于 2020-08-14T13:36:06.343 回答