如何在Mac OS上启动 GUI版emacsclient

谢谢

有没有,server- client 这个用法? 比如 在Docker中运行 Emacs deamon, 在host 中,多开 Emacs clientclient?

这个不知道. 可能不行.

不过你可以在任何 remote linux 机器 (应该包括 Docker 里) 上开 emacs --daemon, 然后在那个机器上跑 emacsclient -c xxx

这样的话,还是直接开,直接用。在相应的配置下,控制打开的时长在1秒内。感觉就好多了~ 避免长时间等待。

用Emacsclient可能还有个问题,配置更新,要不热加载,要不重启Emacs deamon 守护进程服务,这就复杂了 ~

不知道从 session/workspace 的管理方面会不会带来些方便?

刚刚配置了下Raycast, 可以不开显示地开terminal 来开启 emacsclient -c xxx 了. 用这个就行: Raycast Store: Shell

回头只需要配置好这个 mac-pseudo-daemon, 应该就可以比较完美地使用了: 随时瞬开 GUI-based emacsclient. 这个是在 @Nasy 给的issue里找的,非常感谢.

1 个赞

@EthanLin 还有, 使用 emacsclient 不只是为了一个 emacs 窗口打开得快. 按照我的理解和测试, 是可以任意多个emacs窗口都可以瞬开. 这样才有使用 IDE (JetBrains) 或者 VSCode 的体验.

1 个赞

我遇到类似问题,不过是在windows上,死活启动不了terminal下的frame,有没有大佬知道怎么解决呀? :joy: 我的问题在: windows下怎么用client启动一个terminal下的frame? - Emacs-general - Emacs China (emacs-china.org)

1 个赞

这个没有差别啊,emacsclient最终还是用的emacs

Windows下用emacsclientw

emacsclientw -a "" -n -c 

不行,它启动gui frame

早上Mac下试了,确实没区别。

正常运行Emac,再启动新的Frame,也是秒开。不知道这个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 个赞