Unix 我的Emacs替换选项卡自动变为空白
这一直困扰着我,我应该检查哪个钩子来防止这种情况发生(这会使Makefile失败)将其放在init文件中:Unix 我的Emacs替换选项卡自动变为空白,unix,emacs,makefile,Unix,Emacs,Makefile,这一直困扰着我,我应该检查哪个钩子来防止这种情况发生(这会使Makefile失败)将其放在init文件中: (setq-default indent-tabs-mode nil) 默认情况下,该选项为非nil,这意味着Emacs在可能的情况下使用TAB字符,而不仅仅是SPC字符 评论后更新: 也许您的init文件中有该代码,但我怀疑您正在使用的其他代码(例如加载或自动加载)会将makefile缓冲区中的值设置为非nil 这很容易测试:在该缓冲区中,执行C-hv缩进制表符模式 如果该值为非n
(setq-default indent-tabs-mode nil)
默认情况下,该选项为非nil,这意味着Emacs在可能的情况下使用TAB字符,而不仅仅是SPC字符
评论后更新: 也许您的init文件中有该代码,但我怀疑您正在使用的其他代码(例如加载或自动加载)会将makefile缓冲区中的值设置为非nil 这很容易测试:在该缓冲区中,执行
C-hv缩进制表符模式
如果该值为非nil,则检查为设置makefile缓冲区而调用的代码-makefile模式
或任何设置缓冲区的代码。我敢打赌这是你的问题
请记住:setq default
设置默认值,即变量在任何缓冲区中的值,除非将(本地)值设置为该缓冲区中的其他值。有人在缓冲区中将值设置为非零-这是我的猜测。要找到那东西就得用它了
如果您无法通过检查设置makefile缓冲区的代码找到它,则递归地对分init文件(如果需要,则加载)以查找罪魁祸首。如果您在makefile模式(默认模式)下编辑makefile,则它不应这样做。如果它仍然存在,那么它就是您在emacs init文件中启用的东西。。。我们不知道您可能在init文件中设置了什么,因此我们无法提供帮助。如果您运行
emacs-q
,那么编辑一个makefile,它仍然会转换吗?是的,编辑时已启用makefile模式。有线的事情是,我的emacs“有时”会进行替换,我想发生的是一些钩子包含了tab to whitespace命令。@user1961679 Search/grep foruntabify
,在emacs init中。是否在保存文件时执行的某个钩子中调用了它,如保存钩子之前的?@kaushalmodi a'C-hv'以查看保存钩子变量之前的值是(空白清除),此函数相当长,是否可以取消绑定?