一个 emacs.d/init.el 以适应非 x 会话和 x 会话
One emacs.d/init.el to suit non-x session and x-session
当我在没有 x-server 运行 的情况下启动 emacs 时,我 init.el
中的一些东西失败了,例如:
(require 'sr-speedbar)
没有图形服务器是不合适的,我宁愿从那里开始
(require 'speedbar)
在可以从非 x 模式调用 emacs 的情况下,emacs 专家建议什么作为适当的 init.el
配置?是否有一种既定的方法可以在制度或优雅的回退下提供一般的、平行的体验?
很大程度上取决于您通常 运行 所处的环境以及
控制你需要的。例如,如果您只是想区分
运行ning 在具有完整图形功能的环境下,您可以使用 display-graphic-p
例如
(when (display-graphic-p)
;; do stuff which needs a graphic display)
但是如果需要区分不同的平台,比如什么时候
运行在 OSX 下,你需要类似
的东西
(when (eq system-type 'darwin)
;; do stuff which should only run when on OSX'))
最后,对于只需要在 运行ning 时进行配置的情况
在特定的 window 系统下,您可以使用类似
(when (eq window-system 'x)
;; only under X window frame))
但是,需要注意一些细微之处。其中一些变量,例如
因为 window-system 是对当前帧的测试。所以,你需要考虑
执行代码时。例如,如果你 运行 emacs 作为守护进程,
是加载 init 时 window-system 的值吗?同样,如果你
使用emacs作为守护进程或者使用emacsclient打开一个新的'frame'它可能会被打开
a 图形或文本框。有时,您可能需要创建一个新的
命令环绕你想做的事情并在该点进行测试
您执行命令,以便它可以响应您所在的特定帧
当你执行命令时。
当我在没有 x-server 运行 的情况下启动 emacs 时,我 init.el
中的一些东西失败了,例如:
(require 'sr-speedbar)
没有图形服务器是不合适的,我宁愿从那里开始
(require 'speedbar)
在可以从非 x 模式调用 emacs 的情况下,emacs 专家建议什么作为适当的 init.el
配置?是否有一种既定的方法可以在制度或优雅的回退下提供一般的、平行的体验?
很大程度上取决于您通常 运行 所处的环境以及 控制你需要的。例如,如果您只是想区分 运行ning 在具有完整图形功能的环境下,您可以使用 display-graphic-p 例如
(when (display-graphic-p)
;; do stuff which needs a graphic display)
但是如果需要区分不同的平台,比如什么时候 运行在 OSX 下,你需要类似
的东西(when (eq system-type 'darwin)
;; do stuff which should only run when on OSX'))
最后,对于只需要在 运行ning 时进行配置的情况 在特定的 window 系统下,您可以使用类似
(when (eq window-system 'x)
;; only under X window frame))
但是,需要注意一些细微之处。其中一些变量,例如 因为 window-system 是对当前帧的测试。所以,你需要考虑 执行代码时。例如,如果你 运行 emacs 作为守护进程, 是加载 init 时 window-system 的值吗?同样,如果你 使用emacs作为守护进程或者使用emacsclient打开一个新的'frame'它可能会被打开 a 图形或文本框。有时,您可能需要创建一个新的 命令环绕你想做的事情并在该点进行测试 您执行命令,以便它可以响应您所在的特定帧 当你执行命令时。