小编Yar*_*ary的帖子

切换主模式时如何保持dir-local变量?

我正在致力于一个项目,标准缩进和标签是3个字符宽,它使用HTML,PHP和JavaScript的混合.由于我将Emacs用于所有内容,并且只想要该项目的3-char缩进,我在项目的根目录设置了一个".dir-locals.el"文件,以应用于它下面的所有文件/所有模式:

; Match projets's default indent of 3 spaces per level- and don't add tabs
(
 (nil .
        (
         (tab-width . 3)
         (c-basic-offset . 3)
         (indent-tabs-mode . nil)
         ))
 )
Run Code Online (Sandbox Code Playgroud)

我第一次打开文件时工作正常.切换主要模式时会出现问题 - 例如,在PHP文件中处理一大块文字HTML.然后我丢失了所有dir-local变量.

我还尝试明确说明我在".dir-locals.el"中使用的所有模式,并添加到我的.emacs文件"dir-locals-set-class-variables/dir-locals-set-directory-class ".我很高兴地说他们都表现得很稳定,最初设置dir-local变量,然后在切换主模式时丢失它们.

我正在使用GNU Emacs 24.3.1.

在切换缓冲区的主模式时,重新加载dir-local变量的优雅方法是什么?

- 编辑 - 感谢Aaron和phils的优秀答案和评论!在这里发帖之后,我认为它"闻起来"就像一个bug,因此向GNU发送报告将向他们发送这些讨论的参考.

emacs elisp

7
推荐指数
1
解决办法
1633
查看次数

标签 统计

elisp ×1

emacs ×1