Подтвердить что ты не робот

В 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>();
4b9b3361

Ответ 1

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

Ответ 2

Это ответ на комментарий к команде 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)

Ответ 3

M-x align должен делать трюк.