java emacs alignment indentation

Cómo configurar emacs en modo java para que no alinee automáticamente los parámetros del método



alignment indentation (2)

En emacs, cuando escribo:

public void foo(String one, String two) {

Se tabula así:

public void foo(String one, String two) {

Preferiría que no lo hiciera, y simplemente alinearon los parámetros como otras continuaciones de línea. ¿Cómo puedo configurarlo para no hacer esto?


Esto viene del manual de información para el modo CC de Emacs, usando GNU Emacs 23.1 en Windows:

  1. Comience a construir su clase de Java que no está sangrando correctamente. En tu caso, exactamente lo que has escrito arriba.
  2. Mueva el cursor al inicio de la línea que no está sangrando correctamente. En su caso, "String two) {".
  3. Presione Cc Cs ( c-show-syntactic-information ) para preguntarle a Emacs qué elemento de sintaxis cree que está viendo. En su caso, dirá algo como ((arglist-cont-nonempty nm)).
  4. Use Cc Co ( c-set-offset ) para decirle que desea cambiar el nivel de sangría para este elemento sintáctico.
  5. El valor predeterminado es que piensa que el elemento sintáctico es, por ejemplo, arglist-cont-nonempty. Simplemente pulsa RET si ese valor predeterminado es correcto.
  6. Ahora quiere saber qué expresión usar para calcular el desplazamiento. En su caso, el valor predeterminado es una expresión elisp. Borra eso, y solo usa un signo más + en su lugar.
  7. Pruébelo para asegurarse de que funciona correctamente: presione TAB en un grupo en líneas diferentes, o Mx indent-region o similar.
  8. Para hacerlo permanente, agregue esto a su archivo .emacs:

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


Me gusta especificar el estilo de modo en la primera línea de cada archivo fuente. Tratar:

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

Esto te dará una tabulación racional. También puedes probar "k & r".