在切换编码样式时,我需要将一个制表符宽度的 4 个缩进转换为两个空格的缩进。
我在 .emacs 文件的最后添加了以下内容:
(setq indent-tabs-mode nil)
(setq c-basic-offset 2)
不幸的是,这不起作用。我仍然需要 Mx set-variable for c-basic-offset,为每个打开的文件将其设置为 2,才能成功将缩进更改为 2 个空格而不是 1 个制表符。
在这些设置之后我是否需要添加另一个配置设置才能使新的 c-basic-offset 坚持下去?
答案1
c-basic-offset
是每个缓冲区的变量,因此在你的文件中设置它是.emacs
行不通的。你可以使用(setq-default c-basic-offset 2)
或定义一个模式钩子每次启动时都会执行cc-mode
。
答案2
M-x customize-variable c-basic-offset
来自文档字符串:
This variable automatically becomes buffer-local when set outside Custom.
However, setting it through Custom sets the default value.
答案3
你应该试试(setq-default tab-width 4)
我的文件中有以下设置.emacs
,并且对我有用:
(setq-default tab-width 2)
(setq js-indent-level 2)
(setq c-basic-offset 4)
(setq css-indent-offset 2)
(setq sh-basic-offset 2)
(setq-default indent-tabs-mode nil)
答案4
可能的替代方法:使用类似的东西(set-variable 'c-file-style "gnu")
来获取您想要的样式。有一个相当全面的内置样式列表,您可以定义自己的样式。