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

时间:2009-09-02 02:45:17

标签: java emacs alignment indentation

在emacs中,当我输入:

public void foo(String one,
    String two) {

它如下所示:

public void foo(String one,
                String two) {

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

2 个答案:

答案 0 :(得分:36)

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

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

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

答案 1 :(得分:2)

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

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

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