如何在java模式下配置emacs,以便它不会自动对齐方法参数

在emacs中,当我输入:

public void foo(String one, String two) { 

它如下所示:

 public void foo(String one, String two) { 

我宁愿它没有,只是像其他线延续一样对齐参数。 如何配置它不要这样做?

这来自Emacs CC Mode的Info手册,在Windows上使用GNU Emacs 23.1:

  1. 开始构建没有正确缩进的Java类。 在您的情况下,正是您在上面键入的内容。
  2. 将光标移动到未正确缩进的行的开头。 在你的情况下,“字符串二){”。
  3. 点击Cc Cs( c-show-syntactic-information )向Emacs询问它认为你在看什么语法元素。 在你的情况下,它会说像((arglist-cont-nonempty nm))。
  4. 使用Cc Co( c-set-offset )告诉它要更改此语法元素的缩进级别。
  5. 它默认为它认为语法元素是什么,例如arglist-cont-nonempty。 如果默认值正确,只需按RET即可。
  6. 现在它想知道用于计算偏移量的表达式。 在您的情况下,默认值为elisp表达式。 删除它,然后只使用一个加号+。
  7. 测试它以确保它正常工作:在不同的行或Mx缩进区域或类似地点击TAB。
  8. 要使其永久化,请将其添加到.emacs文件中:

(setq c-offsets-alist’((arglist-cont-nonempty。+)))

我喜欢在每个源文件的第一行中指定模式样式。 尝试:

// -*- mode: java; c-file-style: "stroustrup" -*-

这将为您提供合理的表格。 您也可以尝试“k&r”。