我想知道是否有人对OS X上的emacs 23的设置有任何建议.我已经使用Linux/Windows一段时间了,我只打开了很多emacs实例,它们是自包含的 - 例如,我可以在单独的框架中有两个单独的文件,每个文件都有自己的R,Python和/或shell运行.我认为这是不赞成的(?) - 但它保持每个脚本文件的工作目录分开,我喜欢.
我知道在我的.emacs文件中设置(server-start)并调用'emacsclient'而不是'Emacs'现在是首选方式(?)有一些优点.我发现这个线程可以通过Applescript来实现这一点: Emacs 23,OS X,multi-tty和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(不仅仅是帧)实例?
谢谢!
如果您想要emacs的多个实例(而不是帧),请在终端提示符处使用以下内容:
/Applications/Emacs.app/Contents/MacOS/Emacs & (Generic form for any app) /Path_To_Application.app/Contents/MacOS/Application &
让我间接回答你的问题.
如您所知,emacsclient
提供服务,允许用户在现有 Emacs中从外部Emacs打开文档.这是专家的"方式"吗?取决于专家.我是Emacs的重度用户,但从未使用过emacsclient
.为什么?因为我从不首先离开 Emacs.我运行的所有shell都在Emacs中(使用自制的屏幕包),我在Emacs中读取邮件等.我从来没有理由emacsclient
在命令行输入.
您的使用模式似乎是您希望运行多个Emacsen,从而更容易跟踪哪些进程和文件一起使用.这是有道理的.如果您愿意,可以在一个 Emacs中完成所有操作,但可能需要对您的使用模型进行一些更改,或者根据您的喜好帮助管理多个解释器/ shell /.
因此,如果您喜欢运行多个Emacs实例,那么请务必继续这样做.
关于第二个问题,看起来好像(server-start)
你的.emacs导致了问题 - 可能是因为与两个Emacsen试图使用同一个端口发生冲突.查看启动服务器的文档,或者从.emacs中删除该行,然后使用--daemon
命令行选项启动服务器一次.
然后,在命令行中,您可以选择是否要启动新的emacs(通过键入emacs
)或连接到您启动的服务器(通过键入emacsclient
).