19

在emacs中,当我输入:

public void foo(String one,
    String two) {

它像这样制表:

public void foo(String one,
                String two) {

我宁愿它没有,而只是像其他行延续一样对齐参数。我怎样才能配置它不这样做?

4

2 回答 2

37

这来自 Emacs CC 模式的 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 indent-region 或类似的。
  8. 要使其永久化,请将其添加到您的 .emacs 文件中:

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

于 2009-09-02T04:22:52.347 回答
2

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

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

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

于 2010-03-03T17:03:58.267 回答