我想知道是否有人对OS X上设置emacs 23有任何建议。我已经使用Linux / Windows一段时间了,我只打开了很多emacs实例,它们是自包含的 - 例如,我可以在不同的框架中有两个单独的文件,每个文件都有自己的R,Python和/或shell运行。我认为这是不赞成的(?) - 但它保持每个脚本文件的工作目录分开,我喜欢。
我知道在我的.emacs文件中设置(server-start)有一些优点,而调用'emacsclient'而不是'Emacs'现在是首选的方式(?)。我发现这个线程通过Applescript促进了这一点: Emacs 23, OS X, multi-tty and emacsclient
但我想知道这是否是唯一可行的方法 - 当我在OS X上打开两个emacs实例时,它会给我错误:
** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0x3803, name = 'org.gnu.Emacs.ServiceProvider'
但打开一个新框架可以让我编辑文件。据我所知,对于OS X上的vim,有一个名为'mvim'的东西允许启动多个vim实例,但是对于emacs有类似的东西吗?很抱歉这个冗长的问题 - 总之,我想这些是我想征求你的专业知识的问题:
(1)'emacsclient'是专家的方式吗? (2)如果不一定,是否有办法在OS X上运行多个emacs 23实例(不仅仅是帧)?
谢谢!
答案 0 :(得分:7)
如果您想要多个实例(而不是帧)的emacs,请在终端提示符下使用以下内容:
/Applications/Emacs.app/Contents/MacOS/Emacs &
(Generic form for any app) /Path_To_Application.app/Contents/MacOS/Application &
答案 1 :(得分:6)
让我间接回答你的问题。
如您所知,emacsclient
提供了一项服务,允许用户在现有 Emacs中从外部Emacs打开文档。这是专家的“方式”吗?取决于专家。我是Emacs的重度用户,但从不使用emacsclient
。为什么?因为我从来没有离开 Emacs。我运行的所有shell都在Emacs中(使用自制的screen包),我在Emacs中读过邮件等等。我从来没有理由在命令行输入emacsclient
。
您的使用模式似乎是您希望运行多个Emacsen,从而更容易跟踪哪些进程和文件一起使用。这是有道理的。如果您愿意,可以在一个 Emacs中完成所有操作,但可能需要对您的使用模型进行一些更改,或者根据您的喜好帮助管理多个解释器/ shell /。
因此,如果你想运行多个Emacs实例,那么请继续这样做。
关于第二个问题,似乎你的.emacs中有(server-start)
导致问题 - 可能是因为与两个Emacsen试图使用相同端口发生冲突。查看documentation以启动服务器,或者从.emacs中删除该行,然后使用--daemon
命令行选项启动服务器一次。
然后,在命令行中,您可以选择是否要启动新的emacs(通过键入emacs
)或连接到您启动的服务器(通过键入emacsclient
)。< / p>
答案 2 :(得分:4)
这是一个简单的shell脚本,它将启动一个单独的实例,引发Emacs窗口并为其提供焦点:
#!/bin/bash
/Applications/Emacs.app/Contents/MacOS/Emacs \
--eval '(select-frame-set-input-focus (nth 0 (frame-list)))' \
"$@"
注意:
答案 3 :(得分:1)
我在 .emacs 中使用类似的东西,只在服务器尚未运行时才调用server-start:
(if (file-exists-p
(concat (getenv "TMPDIR") "emacs"
(number-to-string
(user-real-uid)) "/server"))
nil (server-start))
然后对我的 .zshrc 进行了一些更改,以便我可以盲目地从shell中运行ec
作为我的编辑器命令:
# I use the Emacs package from emacsformacosx.com
alias emacs='open -a emacs'
alias emacsclient='/Applications/Emacs.app/Contents/MacOS/bin/emacsclient'
alias ec='emacsclient -a /Applications/Emacs.app/Contents/MacOS/Emacs'
export EDITOR='ec'
答案 4 :(得分:1)
我创建了这个shell script,它允许您同时打开多个emacs实例。
要安装,只需将emacs-ide
脚本复制到/usr/local/bin/
或$PATH
上的任意目录。
您可以使用多个文件或目录运行多个Emacs实例,如下所示:
emacs-ide ~/Projects/project-1
emacs-ide ~/Projects/project-2
该脚本还设置窗口的名称以匹配正在编辑的目录(项目)或文件。
答案 5 :(得分:0)
使用
open -a -n /Applications/Emacs.app
弹出窗口“Emacs意外退出”,对我失败了。 (OS X Yosemite 10.10.3,Emacs 24.3.1 x86_64-apple-darwin)
作为一种解决方法,我安装了Aquamacs以及Emacs,所以至少我可以运行两个副本。