1

在 emacs 中打开文件中的 .txt 文件并按 Tab 并不总是给出相同的结果。有时 4,然后按 Tab 显示 2。

同样的事情也发生在 .c/.cpp 文件中。

这是 emacs 24.2 中的一个功能吗?

如何获得一致性标签宽度?

4

2 回答 2

1

当您按下 TAB 键时,根据模式和光标的位置,emacs 将尝试缩进该行(在您调用 .txt 的文件中,只有在该行的开头,在该行的中间它会根据您的喜好插入一个制表符或空格直到下一个制表位)。

缩进与您所在行之前的行相关。因此您会看到按 TAB 键并不总是插入相同数量的空格(或制表符)。这是一个特点。如果需要,您可以绑定制表键来执行不同的操作(插入制表符或固定数量的空格),但您将失去非常有用的功能。

您应该使用变量indent-tabs-mode, tab-width, 并c-basic-offset让 emacs 在这方面表现得如您所愿。

例如:

(setq-default c-basic-offset 4
              tab-width 4
              indent-tabs-mode nil)

如果您想在 .txt、.c 和 .cpp 文件中使用 4 个空格(其他模式可能需要其他变量,例如 nxml,但我现在不知道您还使用什么)。

于 2013-10-29T08:58:27.953 回答
0

Emacs -Q: "tab-width是`C源码'中定义的变量。它的值是8

设置后自动变为缓冲区本地。"

哪个 IMO 是一种有用的行为,因为编程模式将采用不同的样式,以不同的方式设置它,所以能够改变它很重要。

例如,在 Python 中,制表符宽度为 4 是常见的。

于 2013-10-29T07:04:20.300 回答