【发布时间】:2021-01-19 11:21:32
【问题描述】:
我正在尝试找出一种将一个 emacs 配置用于不同系统的好方法。 我在 WSL 内的 windows 上使用 emacs 来工作,但也在我家里的 linux 机器上。
不同的系统有不同的要求,例如在家里,我使用exwm 包作为我的窗口管理器。然而,当通过 WSL 使用 emacs 时,我不需要那个包,还有其他情况,这只是一个例子。
我不想将我的配置拆分为两个单独的存储库(一个用于 linux,一个用于 wsl),因为有相当多的代码会被重复,因此如果发生变化则需要更新两次。
到目前为止,我想出了这样的东西:
; Determine which OS we are on.
(if (string-match "Microsoft" (car (split-string (shell-command-to-string "uname -r"))))
(setq ENV "wsl")
(setq ENV "linux"))
然后我可以这样做:
(if (equal ENV "linux")
(setq doom-font (font-spec :family "Cozette" :size 12))
(setq doom-font (font-spec :family "Inconsolata" :size 18)))
但是,我不知道这是否是一个好方法。如有任何关于该主题的意见,我将不胜感激。
【问题讨论】:
-
This question over on Emacs Stack Exchange 有一些建议。似乎检查变量
operating-system-release可能是最简单的方法。
标签: linux emacs config windows-subsystem-for-linux