emacs目录变量,不包括特定子目录

emacs目录变量,不包括特定子目录,emacs,directory,project,indentation,subdirectory,Emacs,Directory,Project,Indentation,Subdirectory,我有一个需要2个空格缩进的项目a,但它在使用4个空格的子文件夹B中嵌入了另一个项目 我在A/.dir-locals.el中有以下内容: ((c-mode . ((indent-tabs-mode . nil) (c-basic-offset . 2)))) 。。。它很好地应用于目录A中的所有c文件 问题:我可以在同一个dir-locals.el文件中排除子文件夹B不受2个空格缩进的影响吗 我当然可以使用B的设置创建a/B/.dir-locals.el,但由于现在是例外情

我有一个需要2个空格缩进的项目a,但它在使用4个空格的子文件夹B中嵌入了另一个项目

我在A/.dir-locals.el中有以下内容:

((c-mode . ((indent-tabs-mode . nil)
            (c-basic-offset . 2))))
。。。它很好地应用于目录A中的所有c文件

问题:我可以在同一个dir-locals.el文件中排除子文件夹B不受2个空格缩进的影响吗


我当然可以使用B的设置创建a/B/.dir-locals.el,但由于现在是例外情况,我更愿意将设置保留在a/.dir locals.el中,您不能在
.dir locals
文件中指定路径

我认为这是一个更好的解决方案。因为它允许您与其他编辑器的用户共享编码样式。Emacs有一个很好的方法来应用
.editorconfig
文件的设置

将其放在
A
目录中:

# top-most EditorConfig file

root = true
# only match files in root folder
[/*.c]
indent_style = space
indent_size = 2

从手册中引用:

下面是一个“.dir locals.el”文件的示例:
((无)。((缩进制表符模式.t)
(填写第80栏)
(c-mode.((c-file-style.“BSD”)
(细分为零)
(“src/进口”
.((无)((更改日志默认名称
"ChangeLog.local"()()())
这将为列表中的任何文件设置“缩进制表符模式”和“填充列”
目录树,以及任何C源文件的缩进样式。这个
特殊的'subdirs'元素不是一个变量,而是一个特殊的关键字
指示C模式设置仅应用于当前模式
目录,不在任何子目录中。最后,它指定了一个不同的
“src/imported”子目录中任何文件的“ChangeLog”文件名。
--C-hig
(emacs)目录变量

因此,在您的情况下,您可能正在寻找以下内容:

((c模式)((缩进制表符模式.nil)
(c-basic-offset.2)))
(“B”。((c-模式。((c-basic-offset.4()())))