Как настроить Emacs в режиме Java, чтобы он не выравнивал параметры метода автоматически
В Emacs, когда я печатаю:
public void foo(String one,
String two) {
Это выглядит так:
public void foo(String one,
String two) {
Я бы предпочел, чтобы это не так, и просто выровнял параметры, как другие продолжения строки. Как я могу настроить это, чтобы не делать этого?
2 ответа
Решение
Это взято из руководства Info для Emacs CC Mode, использующего GNU Emacs 23.1 в Windows:
- Начните создавать свой класс Java, который не имеет правильного отступа. В вашем случае именно то, что вы напечатали выше.
- Переместите курсор в начало строки, которая не имеет правильного отступа. В вашем случае "Строка два) {".
- Хит Cc Cs (
c-show-syntactic-information
) спросить Emacs, на какой синтаксический элемент он смотрит. В вашем случае он скажет что-то вроде ((arglist-cont-nonempty n m)). - Используйте Cc Co (
c-set-offset
) сказать, что вы хотите изменить уровень отступа для этого синтаксического элемента. - По умолчанию он считает, что синтаксический элемент, например, arglist-cont-nonempty. Просто нажмите RET, если это значение по умолчанию является правильным.
- Теперь он хочет знать, какое выражение использовать для вычисления смещения. В вашем случае по умолчанию используется выражение elisp. Удалите это и просто используйте один плюс + вместо.
- Проверьте его, чтобы убедиться, что он работает правильно: нажмите TAB на несколько строк, или Mx Indent-Region или аналогичный.
- Чтобы сделать его постоянным, добавьте его в ваш файл.emacs:
(setq c-offsets-alist '((arglist-cont-nonempty. +)))
Мне нравится указывать стиль режима в первой строке каждого исходного файла. Пытаться:
// -*- mode: java; c-file-style: "stroustrup" -*-
Это даст вам рациональное табификация. Вы также можете попробовать "K & R".