所以我已经听说过emacs的优点,并且最近才开始使用它。请原谅我这是一个愚蠢的问题,但为什么emacs会以不同的方式显示标签?好像它的空间数量增加了一倍,但至少我估计它并没有。这里有一些图片来描述我在谈论的内容:
这就是emacs中的样子:
正如我之前所说的那样,似乎空间的数量增加了一倍。当我将此行添加到.emacs时:
(setq c-basic-offset 4)
并使用Cx h CM- \重新定义代码使其在emacs中看起来正常,但在其他文本编辑器中查看时,辅助缩进与第一个缩进(如2个选项卡现在为1个选项卡)一致,并且再一次,我无法理解为什么。将其更改为
(setq c-basic-offset 8)
使其保存并在其他文本编辑器中正常显示。在这一点上,我真的很困惑。
有人可以解释一下原因吗?感谢。
答案 0 :(得分:3)
变量tab-width
是列中制表符空格之间的距离,默认为8.如果您希望它默认为4,则可以(setq-default tab-width 4)
。如果您想要取消所有内容并将标签转换为空格,则可以执行M-: (untabify (point-min) (point-max))
。
您可能会发现this thread有用,尤其是当您想要添加自己的标签时tab-stop-list
上的点。
答案 1 :(得分:1)
您也可以采用健全性,而不是在代码中使用TAB字符。 ; - )
当您点击TAB
密钥(以及RET
或C-j
时,阻止插入 TAB字符,具体取决于您的Emacs版本)设置选项的值 indent-tabs-mode
至nil
。
要从正在编辑的代码中删除预先存在的TAB字符,请使用命令 untabify
。
另请参阅Tabs Are Evil和Untabify Upon Save。
请注意,在Emacs中,您是否使用TAB字符与代码是否缩进的程度无关。例如,无论TAB是否用于某些缩进,选项c-basic-offset
都会控制缩进量。
另外请注意,在您完成TAB习惯之后,代码中留下的对代码有意义的任何TAB字符都更容易找到。它们不会丢失在无足轻重的空白TAB的海洋中。
最后,请注意,有多种方法可以突出显示TAB字符。库highlight-chars.el
中的命令hc-toggle-highlight-tabs
是一种方式。请参阅Show Whitespace。