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

Выравнивание или префикс кода в emacs

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

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

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

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

Приветствия

4b9b3361

Ответ 1

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

  • Тип M-x align-regexp RET

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

Ответ 2

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