我希望将缩进模式设置为仅制表符,并且对于任何模式都使用4个字符的宽度。这似乎是一个微不足道的事情,但我并没有成功。每种模式似乎都有自己的变量和选项。我尝试过在Perl和R中实现此目标,但没有成功。 以下是未能奏效的方法:
(setq-default tab-width 4)
(setq standard-indent 4)
(setq-default r-indent-level 4)
(setq perl-indent-level 4)
(setq c-basic-offset 4) 只适用于c-mode,其他模式无效。我是不是忘了什么?我设置了错误的变量吗?或者这个选项不存在?
我每天使用多种语言(R、Perl、sh、C/C++等)。由于我喜欢在所有语言中使用相同的缩进,是否有全局覆盖变量,可以设置缩进级别和样式,以便在所有模式下保持一致?如果没有,是否有一种方法可以在启动时为每个模式设置它们?如果一切都失败了,那就必须有一个elisp脚本来实现这一点。
使用Emacs 23
解决方案:我必须单独设置每种模式的变量,因为没有全局覆盖。您可以将以下语句放入您的~/.emacs文件中,在启动时配置emacs。
R模式来自ESS包。通过阅读文档,我发现了这个:(setq ess-indent-level 4)
在CPerl模式下(setq cperl-indent-level 4)
看起来你只需要在每个模式中搜索正确的变量。