2009-05-27 6 views
25

Vi esto en alguna parte, pero no puedo encontrarlo ahora. ¿Existe una función incorporada en emacs, o alguien tiene elisp, para alinear todos los signos iguales en una serie de estatizaciones de inicialización en modo cc?En Emacs, ¿cómo alinear signos iguales en una serie de declaraciones de inicialización?

Antes:

int t=9; 
Graphics g = new Graphics(); 
List<String> list = new List<String>(); 

Después:

int   t = 9; 
Graphics  g = new Graphics(); 
List<String> list = new List<String>(); 

Respuesta

38

Use M-x align-regexp (aquí, M-x align-regexp RET = RET). También puede agregar una "regla de alineación" a la variable align-rules-list, para que en el futuro M-x align lo haga. Consulte la documentación (C-h f align) para obtener detalles.

+0

Ok, he obligado a este C-x |. ¿Cómo utilicé emacs por tanto tiempo y no sé nada de esto? Gracias por la ayuda. – Cheeso

+0

El único problema con esto es que "tabifies" la salida, que probablemente no sea la que desea. ¿Conoces alguna forma de prevenir esto? – harpo

+1

harpo: He agregado una nueva respuesta para tu pregunta. – phils

8

M-x align debe hacer el truco.

12

Esto es en respuesta al comentario de harpo a la respuesta de ShreevatsaR:

El único problema con esto es que "tabifies" la salida, lo que probablemente no es lo que quieren. ¿Conoces alguna forma de prevenir esto?

Aquí es lo que hice para resolver esta cuestión:

;; Align with spaces only 
(defadvice align-regexp (around align-regexp-with-spaces) 
    "Never use tabs for alignment." 
    (let ((indent-tabs-mode nil)) 
    ad-do-it)) 
(ad-activate 'align-regexp) 
+1

Esta no es una gran respuesta a la pregunta original, pero valiosa, valiosa , valioso. (Creo que acabo de Ballmered.) – JasonFruit

+0

Me tomó algo de tiempo entender lo que esto [hace] (http://stackoverflow.com/questions/10921225/what-does-ad-activate-do) ... –

Cuestiones relacionadas