一个emacs.d/init.el以适合非x会话和x会话
当我在没有运行x-server的情况下启动emacs时,我的一个emacs.d/init.el以适合非x会话和x会话,emacs,xorg,Emacs,Xorg,当我在没有运行x-server的情况下启动emacs时,我的init.el中的一些东西会失败,例如: (require 'sr-speedbar) 没有图形服务器是不合适的,我应该从这里开始 (require 'speedbar) 在从no-x模式调用emacs的频率与从x模式调用emacs的频率相同的情况下,emacs专家推荐什么作为适当的init.el配置?有没有一种既定的方法可以在管理模式或优雅的回退模式下提供一般的并行体验?很大程度上取决于您通常在什么环境中运行以及运行的级别 你需要
init.el
中的一些东西会失败,例如:
(require 'sr-speedbar)
没有图形服务器是不合适的,我应该从这里开始
(require 'speedbar)
在从no-x模式调用emacs的频率与从x模式调用emacs的频率相同的情况下,emacs专家推荐什么作为适当的
init.el
配置?有没有一种既定的方法可以在管理模式或优雅的回退模式下提供一般的并行体验?很大程度上取决于您通常在什么环境中运行以及运行的级别
你需要的控制。例如,如果您只是想区分
在完全支持图形的环境下运行,可以使用display-graphic-p
e、 g
但是,如果需要区分不同的平台,例如
在OSX下运行时,您需要
(when (eq system-type 'darwin)
;; do stuff which should only run when on OSX'))
(when (eq window-system 'x)
;; only under X window frame))
最后,对于只需要在运行时配置某些内容的情况
在特定的窗口系统下,可以使用
(when (eq system-type 'darwin)
;; do stuff which should only run when on OSX'))
(when (eq window-system 'x)
;; only under X window frame))
然而,有一些微妙之处需要注意。其中一些变量
作为窗口系统是对当前帧的测试。所以,你需要考虑一下
当代码被执行时。例如,如果您将emacs作为守护进程运行,您会做什么
是加载init时Windows system的值吗?同样,如果你
使用emacs作为守护进程,或者使用EmacClient打开一个新的“框架”,它可能会被打开
图形或文本框。有时,您可能需要创建一个新的
命令,该命令环绕您要执行的操作并在该点执行测试
您可以执行该命令,以便它能够响应您所处的特定帧
当您执行命令时 这在很大程度上取决于您通常在什么环境中运行以及运行的级别 你需要的控制。例如,如果您只是想区分 在完全支持图形的环境下运行,可以使用display-graphic-p e、 g 但是,如果需要区分不同的平台,例如 在OSX下运行时,您需要
(when (eq system-type 'darwin)
;; do stuff which should only run when on OSX'))
(when (eq window-system 'x)
;; only under X window frame))
最后,对于只需要在运行时配置某些内容的情况
在特定的窗口系统下,可以使用
(when (eq system-type 'darwin)
;; do stuff which should only run when on OSX'))
(when (eq window-system 'x)
;; only under X window frame))
然而,有一些微妙之处需要注意。其中一些变量
作为窗口系统是对当前帧的测试。所以,你需要考虑一下
当代码被执行时。例如,如果您将emacs作为守护进程运行,您会做什么
是加载init时Windows system的值吗?同样,如果你
使用emacs作为守护进程,或者使用EmacClient打开一个新的“框架”,它可能会被打开
图形或文本框。有时,您可能需要创建一个新的
命令,该命令环绕您要执行的操作并在该点执行测试
您可以执行该命令,以便它能够响应您所处的特定帧
当您执行命令时
(或(featurep'gtk)(featurep'motif)(featurep'x-toolkit)(featurep'cairo))
——例如,在或语句中添加not
?下面是我在OSX上的一个cond
语句中为xorg设置的字体:(和(eq系统类型“darwin”)(不是(featurep'ns))(或者(featurep'gtk)(featurep'motif)(featurep'x-toolkit)(featurep'cairo))
基本上,您在init.el
中设置了条件,以便在某些条件存在或不存在时加载某些文件或其他文件。您能否更准确地描述一下“没有图形服务器不合适”的含义?需要记住的一点是,单个Emacs会话可以同时具有GUI框架和tty框架,因此包应该能够以两种方式工作(而不是任何一种方式;-)@lawlist:究竟为什么要使用如此丑陋/复杂的测试,而不是使用类似于display-graphic-p
的东西?@Stefan--谢谢你提出了一种更有效的测试方法。大约一年前,我可能从functionemacs版本
或从faces.el中删除了部分测试(我记不清了,但快速的Grep让我找到了这两种可能性)。我将在我的待办事项列表上做一个记录,在OSX上用xorg测试display-graphic-p
,用ns测试常规GUI Emacs
,并相应地修改我的用户配置文件。(或(featurep'gtk)(featurep'motif)(featurep'x-toolkit)(featurep'cairo))
——例如。,在或语句中添加not
时与一起使用?下面是我在OSX上的一个cond
语句中为xorg设置的字体:(和(eq系统类型“darwin”)(不是(featurep'ns))(或者(featurep'gtk)(featurep'motif)(featurep'x-toolkit)(featurep'cairo))
基本上,您在init.el
中设置了条件,以便在某些条件存在或不存在时加载某些文件或其他文件。您能否更准确地描述一下“没有图形服务器不合适”的含义?需要记住的一点是,单个Emacs会话可以同时具有GUI框架和tty框架,因此包应该能够以两种方式工作(而不是任何一种方式;-)@lawlist:究竟为什么要使用如此丑陋/复杂的测试,而不是使用类似于display-graphic-p
的东西?@Stefan--谢谢你提出了一种更有效的测试方法。大约一年前,我可能从functionemacs版本
或从faces.el中删除了部分测试(我记不清了,但快速的Grep让我找到了这两种可能性)。我会在我的待办事项列表上做一个记录,在OSX上用xorg测试display-graphic-p
,而不是用ns测试常规GUI Emacs
,并相应地修改我的用户配置文件。我想他们甚至会在speedbar inst中提供这一明确的建议