让emacs始终插入(和退格)4个空格的制表符?

3

我本以为已经设置好了,但现在有时emacs会插入一个8字符制表符,或者6或5个字符的制表符...

也许这是由于文档引起的(这在一个包含许多不同制表符间距的大型文本文件中发生过,尽管大多数是4个字符间隔或常规制表符字符)。

(setq-default indent-tabs-mode 0)
(setq-default tab-width 4)
(setq indent-line-function 'insert-tab)

上面是我的init.el代码,这让我想知道为什么它偶尔会失败并插入6个字符的制表符。


你可以使用 customize-group indent - jfs
nil和0相比有什么影响吗? - cristobalito
可能存在模式特定的设置覆盖全局默认设置,或目录特定的设置,或文件特定的设置。缓冲区处于哪种模式?当前目录或其父目录中是否有.dir-locals.el文件?文件中是否有“Local Variables”部分? - Gilles 'SO- stop being evil'
我刚刚尝试了删除emacs-starter-kit,只保留我的init.el文件,并且只有原始问题中列出的那3行代码,但仍然没有成功。有什么建议吗?我认为该文件可能正在覆盖它?当我编辑我的init.el文件时,Tab键甚至没有任何作用。 - tobeannounced
1个回答

1

所讨论的主要模式可能有自己的缩进规则,但如果我们谈论的是文本模式,则确实应该调用indent-line-functioneventually)。您可能需要仔细检查一下这是否是具有不同值的缓冲区局部变量,以及您认为已设置的变量不同,但我会说更有可能的罪魁祸首是tab-stop-list变量。

您可以在此处阅读有关此事和其他相关事项:
http://www.emacswiki.org/emacs/CategoryIndentation

它藏在链接列表的底部附近,但对于理解在没有自动缩进规则的情况下制表符的行为至关重要。

如果您启用了ruler-moderuler-mode-show-tab-stops变量,则可能会有所帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接