在 Subversion 中为 EDITOR 使用 Aquamacs

jen*_*wan 1 emacs svn aquamacs macos

是否可以使用 Aquamacs 作为 Subversion 的编辑器。例如,如果我这样做

svn propedit svn:ignore .
Run Code Online (Sandbox Code Playgroud)

并且我将 EDITOR 变量设置为“emacs”,它将使用 GNU emacs 作为编辑器来编辑该属性。

在我的 .profile 中,我已经

alias emacs="open -a /Applications/Aquamacs.app/"
Run Code Online (Sandbox Code Playgroud)

所以打电话

emacs foo.bar
Run Code Online (Sandbox Code Playgroud)

在 Aquamacs 中打开文件。

将 EDITOR 变量设置为“emacs”无法使用 Aquamacs。将 EDITOR 设置为 '"open -a /Applications/Aquamacs.app/"' 确实会在 Aquamacs 中打开文件,但由于 open 不是阻塞命令(我猜),Subversion 会立即在终端中继续运行,就好像什么都没有进入。换句话说,它不会等待用户的编辑。

我不知道是否可以调用 open 以阻止它,或者 OSX Terminal 中是否还有另一个命令。显然,我不知道阻塞是否会起作用,因为它究竟会阻塞什么?

Dou*_*ris 5

您应该将 EDITOR 设置为emacsclient而不是 emacs。这是 emacs 内部服务器的客户端接口。

配置(一次):

  • 设置$EDITOR为 emacsclient:export EDITOR=emacsclient
  • 放入(server-start)你的.emacs启动文件

当您运行svn commitcrontab它使用或其他命令$EDITOR,该文件将在Emacs打开。当你完成编辑,打C-x #回控制svncrontab等等。

emacs 服务器上的 stackoverflow和 emacs 文档中查看这个问题并调用 emacsclient


更新:我使用标准的 emacs 构建,而不是 Aquamacs,所以我在谷歌上搜索 Aquamacs 和 emacsclient 是否需要任何特殊技巧。在 emacs wiki Aquamacs FAQ 上,我发现了这个片段:

为了使用“aquamacs”和“emacsclient”命令行工具,从Aquamacs菜单栏,Tools->Install Command Line Tools。如果您要升级 Aquamacs,您可能需要重新安装命令行工具。

我想如果你不这样做,你将使用emacsclientOS X 附带的,它可能不会向 Aquamacs 发送正确的消息。重新安装命令行工具。