В Emacs, как выстроить знаки равенства в серии операторов инициализации? - PullRequest
27 голосов
/ 27 мая 2009

Я видел это где-то, но не могу найти это сейчас. Есть ли в emacs встроенная функция, или у кого-то есть elisp, чтобы выстроить все знаки равенства в серию инициализационных операторов в cc-режиме?

До:

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

После:

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

Ответы [ 3 ]

42 голосов
/ 27 мая 2009

Используйте M-x align-regexp (здесь M-x align-regexp RET = RET). Вы также можете добавить «правило выравнивания» к переменной align-rules-list, чтобы в будущем M-x align сделало это. Подробности см. В документации (C-h f align).

15 голосов
/ 15 ноября 2011

Это ответ на комментарий гарпо к ответу ShreevatsaR:

Единственная проблема с этим состоит в том, что он «табулирует» вывод, что, вероятно, не то, что вы хотите. Вы знаете какой-нибудь способ предотвратить это?

Вот что я сделал, чтобы решить эту проблему:

;; 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)
8 голосов
/ 27 мая 2009

M-x выравнивание должно помочь.

...