выравнивая или prettifying код в Emacs

Я помню, что это было возможно в emacs, но не знаю, как. Если у меня есть что-то вроде:

'abc' => 1,  
'abcabc' =>2,  
'abcabcabc' => 3,  

Как я могу выровнять клавиши, стрелки и значения для чего-то подобного?

'abc'       => 1,  
'abcabc'    => 2,  
'abcabcabc' => 3,  

Ура

2 ответов


  • выберите регион.

  • тип M-x align-regexp RET

  • тип = и нажмите enter.


вы также можете использовать вместо align-regexp. Разница в том, что align автоматически выбирает регулярное выражение(ы) для использования на основе основного режима буфера. Поэтому, если вы пытаетесь выровнять блок инициализации переменных и назначений в файле c-mode, он автоматически сделает все правильно, без необходимости думать о регулярных выражениях, которые необходимы. Может быть удобным.

например, выберите следующее строки:

int x = 3;
double y = 9.0;
unsigned int z = 6;
const char c = 'A';

и типа M-x align RET. В результате:

int          x = 3;
double       y = 9.0;
unsigned int z = 6;
const char   c = 'A';

я должен добавить, однако, что это не всегда будет работать. Если для основного режима текущего буфера нет регулярных выражений, то вызов align ничего не будет делать. Затем вам нужно вернуться на align-regexp. Но это едва ли большое неудобство. Я действительно использую align-regexp довольно часто. Для удобства я определил псевдоним, чтобы сохранить себе несколько ключевые штрихи:

(defalias 'ar #'align-regexp)