выравнивание или предварительное кодирование в emacs - PullRequest
18 голосов
/ 02 июня 2011

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

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

Как мне выровнять ключи, стрелки и значения примерно так?

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

Приветствия

Ответы [ 2 ]

35 голосов
/ 02 июня 2011
  • Выберите регион.

  • Введите M-x align-regexp RET

  • Введите = и нажмите Enter.

21 голосов
/ 03 июня 2011

Вы также можете использовать команду align вместо 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)
...