使用 emacs 服务器模式
启用 emacs 服务器模式
有几种方法可以达到目的,不过最简单的是用 systemd 启动。
systemctl --user enable emacs systemctl --user start emacs
将 emacsclient 设为默认的编辑器
将以下内容保存为~/.local/share/applications/emacsclient.desktop
:
[Desktop Entry] Name=Emacs (Client) GenericName=Text Editor Comment=Edit text MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++; Exec=emacsclient -c -a "emacs" %F Icon=emacs Type=Application Terminal=false Categories=Development;TextEditor;Utility; StartupWMClass=Emacs
系统主菜单里会出现 “Emacs (Client)” 条目。
然后进入所使用的桌面环境的设置中心,将 “Emacs (Client)”设为默认的编辑器。以我正在用的 Linux Mint 为例:
系统设置 -> 首选应用程序
将 “纯文本” 和 “源代码” 的默认程序都改为 "Emacs(Client)"。
解决在 Emacs Client 中无法切换 fcitx 输入中文的问题
cd ~/.config/systemd/user/default.target.wants/ rm -rf emacs.service cp /usr/lib/systemd/user/emacs.service . emacs emacs.service
在 [Service]
下面添加一行:
Environment="LC_CTYPE=zh_CN.UTF-8" "XMODIFIERS=@im=fcitx"
C-x C-s
C-x C-c
systemctl --user daemon-reload systemctl --user restart emacs
随便找个文本文件双击试试看?
[后记]
经过一段时间的使用,发现用 systemd 启动的 emacs server 会忽视用户的环境变量,导致一些问题。比如在 Emacs 中无法启动某些外部程序,因为用户设置的 PATH 被无视了。
目前,我已经放弃用 systemd 来启动 emacs server,而是在桌面环境添加一条开机自动运行的命令 emacs --daemon
来启动 emacs server, 啥问题也没有。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?