我的Emacs自动将制表符替换为空格

时间:2015-02-26 20:30:22

标签: unix emacs makefile

这一直困扰着我,我应该检查哪个钩子以防止这种情况发生(这会使Makefile失败)

1 个答案:

答案 0 :(得分:0)

将它放在你的init文件中:

(setq-default indent-tabs-mode  nil)

默认情况下,该选项为非零,这意味着Emacs可以使用TAB字符,而不仅仅是SPC字符。


评论后更新:

也许您的init文件中包含该代码,但我怀疑您使用的其他代码(例如加载或自动加载)会在makefile缓冲区中将值设置为非nil。

这很容易测试:在那个缓冲区中,做C-h v indent-tabs-mode

如果值为非nil,则检查您调用的代码以设置makefile缓冲区 - makefile-mode或设置缓冲区的任何代码。我敢打赌,这是你的问题。

请记住:setq-default设置默认值,这是变量在任何缓冲区中的值,除非您将(local)值设置为该缓冲区中的其他值。有些东西在缓冲区中将值设置为非零 - 这是我的猜测。它可以用来找到那些东西。

如果你通过检查设置makefile缓冲区的代码找不到它,那么递归地将你的init文件(如果必要的话,它加载的话)加分以找到罪魁祸首。