我的emacs配置为c-default-style为“linux”,c-basic-offset为4,我对此非常满意并且像C和PHP一样迷人 . 问题是,当我尝试编辑一些java代码时,它会缩进,如下所示:
class Main
{
public static void main(String args[])
{
System.out.println("Hello world!");
}
}
这显然是Emacs的缩进默认行为,而不是我为CC模式设置的行为(困扰我的是主函数的括号缩进) . 我几个月前才开始使用Emacs而且我对Emacs Lisp不太满意,但我真的不知道为什么java模式没有采用cc-mode的缩进样式 . 有人有这方面的线索吗?当然,禁用indent-tabs-mode是一种解决方案,但我不得不说我觉得它并不令人满意 . 我觉得这个问题确实有一个简单的解决方案,但我一直在寻找...
2 回答
这对我有用:
您需要下载https://github.com/google/styleguide/blob/gh-pages/google-c-style.el并将其放在加载路径中的某个位置,例如
~/.emacs.d/
.设置"c style"(缩进C语言的规则)简要描述here . 特别是,您可以使用类似的东西为java模式选择"linux":
我相信你需要分别为每种模式选择样式 . 由于某种原因,java-mode可能不会将c-default-style作为字符串 .