绕开 Emacs 自带的 Customize 系统

没错,不放在 custom.el,就得放在别的地方。总是需要有个地方保存当前环境相关的信息,这个地方肯定不是配置代码文件。

比如我在公司和个人电脑上分别设置不同的用户名、email 等信息,这些放在配置代码里是不合适的,custom.el 是个很好的选择(把它当作全局的 .dir-locals.el 就很好理解了)

我配置了 dark 和 light 两套 theme,当其中一套用太久,视觉疲劳了,就通过 theme/switch-to-xxx 换另一套,并且希望接下来很长时间都接着使用这套 theme。配置代码是无法察觉我的选择的,所以我在调用 theme/swith-to-xxx 函数的时候,往 custom.el 写一个 theme:selected-theme 标志,来记录当前 theme 的名字。

当我在一台全新的 mac 上使用 Emacs,初始化的同时要设置 iTerm2.app 的快捷键(以便我在 Emacs 中操控 iTerm2):

(add-hook 'after-init-hook
            (lambda ()
              (unless osx:iterm-key-mappings-p
                (message ">>> osx/set-iterm-key-mappings")
                (osx/set-iterm-key-mappings)
                (customize-save-variable 'osx:iterm-key-mappings-p t))))

这个过程相当耗时,如果不在 custom.el 做标记,我如何以最小代价知道外部 Terminal 的快捷键已经设置过了?

1 个赞