Подтвердить что ты не робот

Как настроить emacs в java-режиме, чтобы он не автоматически выравнивал параметры метода

В emacs, когда я печатаю:

public void foo(String one,
    String two) {

Он выглядит так:

public void foo(String one,
                String two) {

Я бы предпочел, чтобы это не так, и просто выровняли параметры, как и другие линии. Как я могу настроить его не для этого?

4b9b3361

Ответ 1

Это происходит из справочника Info для режима Emacs CC, используя GNU Emacs 23.1 в Windows:

  • Начните строить свой Java-класс, не отступая должным образом. В вашем случае именно то, что вы набрали выше.
  • Переместите курсор к началу строки, которая не будет отступать должным образом. В вашем случае "String two" {".
  • Хит C-c C-s (c-show-syntactic-information), чтобы спросить Emacs, какой элемент синтаксиса он думает, что вы смотрите. В вашем случае он скажет что-то вроде ((arglist-cont-nonempty n m)).
  • Используйте C-c C-o (c-set-offset), чтобы указать, что вы хотите изменить уровень отступа для этого синтаксического элемента.
  • По умолчанию он считает, что синтаксический элемент, например, arglist-cont-nonempty. Просто нажмите RET, если это значение по умолчанию верное.
  • Теперь он хочет знать, какое выражение использовать для вычисления смещения. В вашем случае по умолчанию используется выражение elisp. Удалите это и просто используйте знак плюс +.
  • Протестируйте его, чтобы убедиться, что он работает правильно: нажмите TAB на связке на разных линиях или в области отступа или M-x или аналогичном.
  • Чтобы сделать его постоянным, добавьте его в файл .emacs:

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

Ответ 2

Мне нравится указывать стиль режима в первой строке исходного файла. Попробуйте:

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

Это даст вам рациональное табулирование. Вы также можете попробовать "k & r".