我希望能够指定一个特定于将在org-mode
中打开的文件的主题或一组自定义面。有什么方法可以做到吗?我已经有https://github.com/vic/color-theme-buffer-local但是没有提供在特定文件打开时自动应用它的方法。
理想的解决方案不会涉及我的init.el中的硬编码,但会涉及在加载的文件(或引用的setupfile)中设置变量或调用elisp。
有关为什么这样做有用的示例,有些文件非常扁平,并且使用一组样式更具可读性,而其他文件则深度嵌套,并从另一组样式中受益。
答案 0 :(得分:1)
原始海报引用了一个名为color-theme-buffer-local
(https://github.com/vic/color-theme-buffer-local)的特定库,原始海报希望将其应用于以主要模式org-mode
打开的文件 - 仅当某个变量为t
时才会生效。
以下示例通过调用代码行使用color-theme-buffer-local
说明中引用的代码:(load-theme-buffer-local 'misterioso (current-buffer))
变量my-favorite-variable
将控制何时在打开时调用上一行代码一个org-mode
缓冲区 - 也就是说,当non-nil
适用时,nil
它不适用。
编辑(2014年11月16日):以下是基于原始海报使用文件局部变量的愿望的修订答案:
此答案下方评论中原始海报所描述的行为是由于常规org-mode-hook
在 之前运行考虑了文件局部变量。因此,当my-favorite-variable
运行其路线时(使用初始答案),变量nil
仍为org-mode-hook
。以下修订的答案使用hack-local-variables-hook
,>>在后考虑文件局部变量。
(defvar my-favorite-variable nil)
(defun my-favorite-function ()
(interactive)
(when
(with-current-buffer (current-buffer)
my-favorite-variable)
(load-theme-buffer-local 'misterioso (current-buffer))))
(add-hook 'hack-local-variables-hook 'my-favorite-function)
答案 1 :(得分:0)
据我所知,颜色主题是全局的,用于整个Emacs会话的运行。这同样适用于背景颜色,我喜欢暗壳的缓冲区,否则是光;不可能是ATM。
如果您喜欢浅色背景,可以查看我的颜色主题“Leuven”(在Emacs 24.4中,在MELPA中或在GitHub上)并报告您认为有用的改进。