是否可以使用 Aquamacs 作为 Subversion 的编辑器。例如,如果我
svn propedit svn:ignore .
并且我将 EDITOR 变量设置为“emacs”,它将使用 GNU emacs 作为编辑器来编辑该属性。
在我的 .profile 中,我
alias emacs="open -a /Applications/Aquamacs.app/"
因此调用
emacs foo.bar
在 Aquamacs 中打开该文件。
将 EDITOR 变量设置为“emacs”无法使用 Aquamacs。将 EDITOR 设置为“open -a /Applications/Aquamacs.app/”确实会在 Aquamacs 中打开文件,但由于 open 不是阻止命令(我猜),Subversion 会立即在终端中继续运行,就像没有输入任何内容一样。换句话说,它不会等待用户的编辑。
我不知道是否可以调用 open 来阻止它,或者 OSX 终端中是否有其他命令。显然,我不知道阻止是否有效,因为它究竟会在什么情况下阻止?
答案1
您应该将 EDITOR 设置为emacsclient
而不是 emacs。这是 emacs 内部服务器的客户端界面。
配置(一次):
- 设置
$EDITOR
为 emacsclient:export EDITOR=emacsclient
- 放入
(server-start)
你的.emacs
启动文件
当您运行svn commit
或crontab
使用 的其他命令时$EDITOR
,文件将在 emacs 中打开。完成编辑后,点击C-x #
将控制权返回到svn
、crontab
等。
看看这个在 stackoverflow 上提问和 emacs 文档emacs 服务器并调用 emacsclient。
更新:我使用的是标准 emacs 版本,而不是 Aquamacs,所以我用 Google 搜索了一下,看看 Aquamacs 和 emacsclient 是否需要一些特殊技巧。在 emacs wiki 上Aquamacs 常见问题解答,我发现了这个片段:
为了使用“aquamacs”和“emacsclient”命令行工具,请从 Aquamacs 菜单栏中选择“工具”->“安装命令行工具”。如果您正在升级 Aquamacs,则可能需要重新安装命令行工具。
我想如果您不这样做,您将使用emacsclient
OS X 附带的,它可能不会向 Aquamacs 发送正确的消息。重新安装命令行工具。
答案2
这似乎有效:
export EDITOR="/usr/bin/open -n -W -a /Applications/Aquamacs.app"