请问如何在spacemacs中根据项目来定义tab的行为

多种情况:

  1. .dir-locals.el 首次生效的时候会询问,回答错了就不生效,也不再提示了。回答结果保存在 ~/.emacs.d/custom.el
  2. .dir-locals.el 写错了。
  3. 你用的 mode 不仅仅依据你设置的几个变量来缩进,例如 web-mode 各种 padding/offset 有八九个。

看了下你的 .dir-locals.el,cc-mode 似乎不应该有双引号,一个基本的 c-mode 配置如下:

((c-mode
  (c-basic-offset . 8)
  (indent-tabs-mode . t)))

可以用 emacs -Q 来验证,避免 ~/.emacs.d 配置文件的干扰。

他的只能是第三种情况了

补充:但是我试了,dir-local 在这里不好使了,只能用我贴的链接里的方法,用 set-default, 然后放到 spacemacs 的 user-init 里面

我没有在spacemacs中加入过任何cc-mode 的设置

文件的配置是根据SPC f v d向导了添加的.

你看一下我贴的链接吧

c-mode 替换 cc-mode

tab-width的值变了 看起来是mode 选择不对.

@twlz0ne thx

不管用的 spacemacs 还是其他什么,emacs -Q 依然是很有效的诊断方法。

另外,要想把锅甩给 spacemacs,最好也用 emacs -Q 验证一下。我认为 issues 那个链接的楼主也是没搞清楚状况。