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

Bri*_*uff 19 java emacs indentation alignment

在emacs中,当我输入:

public void foo(String one,
    String two) {
Run Code Online (Sandbox Code Playgroud)

它如下所示:

public void foo(String one,
                String two) {
Run Code Online (Sandbox Code Playgroud)

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

Chr*_*nes 37

这来自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. 测试它以确保它正常工作:在不同的行上点击TAB,或Mx缩进区域或类似.
  8. 要使其永久化,请将其添加到.emacs文件中:

(setq c-offsets-alist'((arglist-cont-nonempty.+)))