emacs - 创建或重用现有的 Emacs GUI 框架

标签 emacs

假设 Emacs 服务器正在运行,我想要 emacsclient <file>要么在没有现有框架时创建一个新框架(如 -c ),要么在有框架时重用现有框架。换句话说,我想要 -c仅当没有现有框架时。那可能吗?

最佳答案

我用一组 shell 脚本解决了我的问题。

my_emacs

#!/bin/sh
emacs24-x $@ 1> /dev/null 2> /dev/null &

您可能需要将 emacs24-x 更改为指向您的 X11 emacs 的内容。

my_emacsclient
#!/bin/sh
emacsclient $@ 1> /dev/null 2> /dev/null || my_emacs

通过 ~/bin 等将这两个文件添加到您的 PATH 中。

在我的 .emacs 中,我还添加了以下几行
(load "server")
(unless (server-running-p) (server-start))

还要更改一些环境变量并可选择添加别名
export ALTERNATE_EDITOR="my_emacs"
export EDITOR="my_emacsclient -n"
export SUDO_EDITOR="my_emacsclient"
...
alias e="$EDITOR"

当您运行时 e在您的 shell 中,它应该创建或重用现有的 GUI 框架。另外,正在运行 e <filename>在框架中打开该文件;您还可以传递其他标志,例如 -ne .

对于其他应用程序中的相同行为(比如您的文件管理器),您还应该将 Emacs .desktop 文件(对我来说是 /usr/share/applications/emacs24.desktop)更改为运行 my_emacs .

更改 emacs 也可能是个好主意至 my_emacsclient通过基于 Debian (?) 发行版中的替代系统。

关于emacs - 创建或重用现有的 Emacs GUI 框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9968740/

相关文章:

emacs - 如何在没有尾随 "nil"的情况下将文本插入缓冲区

emacs - 从 emacs 菜单栏中的 "Buffers"项更改菜单的大小

emacs - 文件时间总和未显示组织模式时钟表

debugging - .emacs 中的 set-frame-height 没有任何效果

macos - 如何调试 emacs 启动缓慢?

search - Emacs:是否可以列出 dired 中标记文件的某个查询字符串的所有匹配行?

emacs - 在 Emacs 上同时运行 Clojure 和其他 Lisp

regex - 如何在 Emacs 中设置 reftex-view-crossref-extra?

emacs - 以下 emacs 命令中的点是什么意思

emacs - 像 Emacs 一样的 Vim Fuzzy Finder?