В Emacs, как выстроить знаки равенства в серии операторов инициализации?
Я видел это где-то, но не могу найти это сейчас. Есть ли в 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 ответа
Решение
Использование M-x align-regexp
(Вот, M-x align-regexp RET = RET
). Вы также можете добавить "правило выравнивания" к переменной align-rules-list
так, чтобы в будущем M-x align
сделаю это. Смотрите документацию (C-h f align
) для деталей.
Это в ответ на комментарий гарпо к ответу 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)