我最近在十年内购买了我的第一台Mac,并且正在配置它。我是一名Emacs用户并确定我只需要常规的Emacs而不是Aquamacs,以便我可以使用其他操作系统的现有配置。我已经尝试过跟踪我在网上找到的很多方法(比如这个,这个和我从网站上下载Emacs的那个),并尝试过各种各样的方式组合,但从来没有让事情进入一个甚至接近我习惯/希望的状态:
- Emacs守护程序在启动时或在我需要时立即开始运行; 要不是很好。任何新的Emacs帧都由同一台服务器支持。
- 当我从Finder打开文本文件时,文件将在Emacs中打开,如果可能,在现有的图形框架中打开。
- 如果我运行Emacs.app,系统将重用在后台运行的emacs守护程序,而不是启动新实例并在其上打开新窗口。(帽子小费)
- 当我从一个终端运行Emacs时终端开始了它的业务,而没有等我完成Emacs(除非我使用'-nw')
- 在上述操作过程中,AFAIK在任何时候都不应该处于一种状态(“服务器编辑模式?”),它等待我输入
C-x #
,尽管我对这个没有深入的了解。 - (我认为这是奖励)我可以通过某种方式从终端调用Emacs,以便Emacs尽可能重用现有的帧。
我怎样才能将Emacs配置为这样?
我特别感到困惑的是让Finder以我想要的方式在Emacs中打开东西(#2),因为我发现的指南通常会创建一些别名,Applescripts,bash脚本等等,我不确定我想告诉Finder用来打开文本文件。
谢谢!
A. @lawlist问:“即使存在现有帧,当您从终端打开新文件时,默认情况下是否打开了新帧?” 答案是,如果我在启动时启动服务器的描述在这里,打开一个框架,然后通过键入打开一个文件/Applications/Emacs.app/Contents/MacOS/bin/emacsclient -n <whatever>
,我可以得到该文件在现有的框架中打开。如果当前没有框架打开,我必须使用“-nc”或当我尝试打开文件时没有任何反应。
B. @lawlist问:“你想让守护进程在登录时运行,还是在登录后手动加载Emacs就足够了?” 手动运行会很好。
M-x server-start
将手动启动服务器,以便emacsclient
与之通信。我已经放入(server-start)
我的init.el
文件而不是在登录时使用守护进程 - 但是,许多人更喜欢守护进程登录选项。当然,该.emacs
文件将是一个合适的地方(server-start)
。
ns-find-file
- 当文件与Emacs.app关联时自动激活。上面链接中的拦截文件功能也会修改ns-find-file
您感兴趣的内容。当然,你需要构建Emacs --with-ns
。