.dir-locals.el . & projectile

项目路径为

~/github/xxx      // 一个git repo
~/github/xxx/.dir-locals.el 
~/github/xxx/yyy/x.h
~/github/xxx/zzz/m.c 

其中 .dir-locals.el 的内容如下:

((c-mode . ((c-basic-offset . 4)
            (c-file-style . "bsd")
            (fill-column . 78)
            (indent-tabs-mode . t)
            (tab-width . 4)))

遇到的问题是:

  1. ~/github/xxx/yyy/x.h 能识别 (tab-width . 4), 通过describe-key 看确实也是从.dir-locals.el 获得的。
  2. ~/github/xxx/zzz/m.c 不能识别 (tab-width . 4), 通过describe-key 看到还是8, 是default value

通过describe-mode, x.h 和 m.c 的major mode 都是 cc-mode.

我希望所有的文件都是 4, 这个问题要怎么解呢?

最后那瓣括号是被苏联间谍偷走了吗

1 个赞

最后的括号应该是被别的mode霸占了

正解, 2位都好犀利~ @zhouchongzxc @lululau

现在暂时绕过这个问题了

通过 hook, 再判断 projectile-name, 强制设置了。