如何在关闭文件后保持emacsclient终端窗口持续运行?
解决Emacsclient关闭初始缓冲区后窗口关闭的问题
以下几种方法可以实现关闭通过emacsclient传入的初始文件/缓冲区后,保持终端emacsclient窗口处于打开状态:
方法一:修改emacsclient启动命令
不要直接将文件名作为参数传给emacsclient,而是通过--eval参数调用find-file打开文件。这样emacsclient会先创建一个独立的窗口,再加载目标文件,关闭该文件缓冲区时不会触发窗口关闭。
修改后的启动命令:
/usr/local/bin/emacsclient -t -s $TMPDIR/emacs$(id -u)/server --eval "(find-file \"$filename\")"
方法二:配置Emacs服务器变量
在你的Emacs配置文件(如~/.emacs.d/init.el或~/.emacs)中添加以下配置,禁用“关闭初始缓冲区时杀死client窗口”的默认行为:
(setq server-kill-new-buffer nil)
添加后重启Emacs守护进程,之后用原命令打开文件时,关闭初始缓冲区后窗口会继续保留。
方法三:替换关闭缓冲区的操作
如果你不想修改命令或配置,也可以在要关闭初始文件缓冲区时,先使用C-x b切换到其他缓冲区(比如*scratch*),再关闭目标缓冲区,这样窗口会因为还有其他缓冲区存在而保持打开。
内容的提问来源于stack exchange,提问作者Camden Narzt
相关产品推荐
相关产品推荐

