Ubuntu 18下Emacs 27:emacsclient启动方法及emacsclient -a ''等效命令
解决Emacs 27+Ubuntu 18下
emacsclient -a ''报错的问题 我刚踩过这个坑!Emacs 27对emacsclient的-a(备用编辑器)参数逻辑做了调整,导致原来Ubuntu 16里顺畅运行的emacsclient -a ''直接报错。下面是亲测有效的解决方案:
为什么原来的命令失效了?
Emacs 27之后,-a ''的解析规则变了——以前空字符串会触发自动启动守护进程,但现在它会把空字符串当成你要打开的文件/参数,自然就会弹出“file name or argument required”的错误提示。
等效替代命令&正确启动方式
1. 最贴近原效果的替代(自动启动守护+打开图形窗口)
如果你原来用emacsclient -a ''是为了快速唤起Emacs图形界面,不管守护进程有没有运行,直接用这个命令:
emacsclient -c -a ''
这里-c是强制创建一个新的图形框架(窗口),搭配-a ''后,系统会自动检查Emacs守护进程状态:
- 如果已有守护进程,直接连接并打开新窗口;
- 如果没有,自动启动
emacs --daemon再完成连接。
2. 终端模式下的替代
要是你习惯在终端里使用Emacs,换成这个命令就好:
emacsclient -t -a ''
-t会强制在当前终端打开Emacs缓冲区,同样会自动处理守护进程的启动逻辑。
3. 跨版本兼容的通用写法
你也可以直接把备用编辑器指定为启动守护进程的命令,这个写法在Emacs 27+和旧版本都能正常工作:
emacsclient -a 'emacs --daemon'
效果和原来的emacsclient -a ''完全一致。
额外小技巧
如果你只是想提前启动守护进程,不用立刻打开编辑器,直接运行这个命令即可:
emacs --daemon
之后再用emacsclient -c(图形模式)或emacsclient -t(终端模式)就能快速连接。
内容的提问来源于stack exchange,提问作者Rorschach
相关产品推荐
相关产品推荐

