Emacs повторяет шаблон замены - макрос?

Я хочу такого же изменения в нескольких строках.

Например, Я хочу заключить каждую строку в файле с элементом ячейки таблицы, как показано ниже.

  <td>
  <div class="column" draggable="true"><header>A</header></div>
  </td>

Я хочу, чтобы каждая строка ниже была заключена, как указано выше.

  <div class="column" draggable="true"><header>B</header></div>
  <div class="column" draggable="true"><header>C</header></div>
  <div class="column" draggable="true"><header>D</header></div>
  <div class="column" draggable="true"><header>E</header></div>

Как мы можем этого добиться? Насколько я понимаю, нам нужно использовать макросы, можете подсказать?

Заранее спасибо.


person 18bytes    schedule 09.09.2012    source источник


Ответы (1)


Попробуйте C-x ( <td> C-e </td> C-n C-a C-x ) в начале строки.

Это должно создать макрос, заключающий текущую строку в <td>, </td>. Теперь сделайте C-x e столько раз, сколько хотите повторить.

Обновление: скринкаст, который я упомянул в комментариях, опубликован по адресу http://emacsmovies.org/blog/2012/09/17/keyboard_macros/ на случай, если захотите взглянуть.

person Noufal Ibrahim    schedule 09.09.2012
comment
Спасибо. Макросы Emacs сэкономили бы много усилий при наборе текста и оставались бы в потоке действий (вместо многократного ввода). - person 18bytes; 09.09.2012
comment
И сделайте C-u 10, чтобы повторить следующую команду, например, записанный макрос C-x e, десять (или выберите свое количество) раз. - person Xaerxess; 09.09.2012
comment
Обратите внимание, что вам не нужно, чтобы макрос включал C-n и C-a для перехода к следующей строке. Любой макрос, который обрабатывает одну строку, можно применить ко всей области с помощью M-x apply-macro-to-region-lines. - person user4815162342; 09.09.2012
comment
Макросы станут темой следующего скринкаста emacsmovies.org. - person Noufal Ibrahim; 09.09.2012
comment
Вы можете продолжать повторять макрос после C-x e, нажимая больше e, например C-x e e e e e повторит макрос 5 раз. - person Stefan; 09.09.2012