如何在Mac OS上启动 GUI版emacsclient

插件装得太多或者配置脚本写得太大,emacs 不能秒开的时候,每次不要退出,把正在运行的 emacs 挂在后台继续执行,有需要编辑就打开一个 emacsclient,这样 cilent 是秒开的,编辑完也只关闭 cilent。就是这样

1 个赞

看看帮助呢?

emacsclientw -a "" -nw

看看这些就明白了

e='emacsclient -a "" -n'
ec='emacsclient -a "" -n -c'
ef='emacsclient -a "" -c'
te='emacsclient -a "" -nw'
1 个赞

我用的是 emacs-plus ,供参考。

确实用的是 daemon ,指定了 socket name 。

/opt/homebrew/bin/emacs --daemon=kenton

/opt/homebrew/bin/emacsclient --no-wait -c --socket-name=kenton

我是用 alfred 写了个 workflow ,通过条件判断来保证只开启一个 frame 。

从这个角度来说的话,可能唯一的用途就是可以在桌面“没有启动 emacs frame“ 的前提下秒开吧 :smiley:

我用的也是emacs-plus,配置有一百二十多个包。基本半秒开Emacs,所以没考虑过emacsclient。

十秒的路过……与其优化配置文件,不如直接扔后台省心,哈哈哈,暴力干预!

emacs-mac与emacs是两个东西(

可以让我参考alfred workflow 吗?你用automator 吗?

来来,看我的blog吧,有详细的介绍,包括shell、Alfred快捷启动等等。

最新的启动bash代码在这里(我编写了函数,方便启动不同theme的emacs):

3 个赞

我就是在 alfred 里执行的 apple script,没有用 automator 。

其实没什么,就是做了 start / stop / restart / frame 四个操作,分别是开启、关闭、重启和 focus 已有 frame 的操作,前三个都是 shell 命令,focus 用的 tell application "Emacs" to activate

楼上的 blog 更全面。

多谢,好详细。无奈我最近把 alfred 换成了 raycast

好的呢,作个参考,反正就是调用个script,差别不大哇

来更新下我的使用情况.

  1. 这个插件不好用. 放弃了. 所以我都是一直开着一个 GUI based Emacs window… 每次开机后, 开一次, 然后最小化. 先凑合这样吧.
  2. Raycast 自带的 Create Script Command 非常好用. 在里面做个命令只需要包括一行 emacsclient -c, 就可以从键盘实现秒开emacsclient windows. 效果非常完美.

各位道友,我找到了完美解决 Mac 启动 Doom emacsclient 的方法. 其实很简单, 就是用了Doom Emacs官方问文档的另一个安装建议.

不使用这个emacs版本

emacs-mac. It offers good integration with macOS, native emojis and better childframe support.
brew tap railwaycat/emacsmacport
brew install emacs-mac --with-modules

改为使用这个emacs版本

emacs-plus:
brew tap d12frosted/emacs-plus
brew install emacs-plus --with-native-comp

然后重新安装 doom emacs, 就搞定了.

装好后, 完全不再需要打开 GUI based Emacs.app. 只需要使用标准的 emacs --daemon 启动 server, 然后就随时使用 emacsclient -c 可快速打开任意多个 GUI based emacs client. 当然把这个emacsclient -c做成 Raycast Script Command 更方便.

这个问题完美解决啦.

我用的是 macOS 原生的 launchctl + Spotlight search, 详情见 Setup Emacs Servers in MacOS · Yi Tang

1 个赞