将启动Emacs的快捷方式路径改为 D:\Emacs\bin\emacsclientw.exe -c -n -e "(raise-frame)" -a "D:\Emacs\bin\runemacs.exe"
然后在配置中设置默认启动server:
(defun my/set-gui ()
(set-font "Cascadia Code" "HarmonyOS Sans SC" 32 32)
(set-frame-position (selected-frame) 100 100)
;;设置宽和高,我的十寸小本是110,33,大家可以调整这个参数来适应自己屏幕大小
(set-frame-width (selected-frame) 170)
(set-frame-height (selected-frame) 30)
)
(if (not (server-running-p))
(progn (server-start)
(add-hook 'server-after-make-frame-hook #'my/set-gui)
))
再将 C-x C-c
绑定到 make-frame-invisible
函数上:
(global-set-key (kbd "C-x C-c") (lambda () (interactive) (make-frame-invisible nil t)))
这样一来,按组合键时就会让当前窗口消失,再次点击上述快捷方式又能呼出新窗口;点击任意窗口右上角为彻底关闭当前Emacs程序。
在实现Daemon、Client的功能同时,避免了直接使用Emacs-Server导致的GUI、配置加载等问题