Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix 我的Emacs替换选项卡自动变为空白_Unix_Emacs_Makefile - Fatal编程技术网

Unix 我的Emacs替换选项卡自动变为空白

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

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

将其放在init文件中:

(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 for
untabify
,在emacs init中。是否在保存文件时执行的某个钩子中调用了它,如保存钩子之前的
?@kaushalmodi a'C-hv'以查看保存钩子变量之前的值是(空白清除),此函数相当长,是否可以取消绑定?