这一直困扰着我,我应该检查哪个钩子以防止这种情况发生(这会使Makefile失败)
答案 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文件(如果必要的话,它加载的话)加分以找到罪魁祸首。