1

Какой самый простой способ перейти в Vim:

hello
world
test
test2
test3
test4

в

<table>
<tr>
<td>hello</td>
<td>world</td>
</tr>
<tr>
<td>test</td>
<td>test2</td>
</tr>
<tr>
<td>test3</td>
<td>test4</td>
</tr>
</table> 

Для списка произвольной длины?

3 ответа3

3

Вы можете добавить <table> и </table> вручную: ggO<table>[ESC]YGpa/[ESC] Где [ESC] - верхняя левая клавиша на клавиатуре +)

  1. gg - перейти в начало файла
  2. O - добавить новую строку над текущей
  3. <таблица> - напишите <таблица>
  4. [ESC] - вернуться в командный режим
  5. Y - дернуть текущую линию
  6. G - перейти в конец файла
  7. p - вставьте выдернутую линию ниже текущей
  8. a - начать режим вставки и начать вставку после текущего символа
  9. / - добавить / символ
  10. [ESC] - обратно в командную строку

Теперь вы можете записать короткий макрос vim для повторения другого набора команд несколько раз:

:2[ENTER]qqO<tr>[ESC][DOWN]I<td>[ESC]A</td>[ESC][DOWN] I<td>[ESC]A</td>[ESC]o</tr>[ESC][DOWN]q

да, теперь вы можете просто повторить @q несколько раз ...(например, 11@q)

  1. :2 - перейти ко второй строке в файле
  2. qq - начать запись макросов в регистр 'q'
  3. O - добавить новую строку над текущей
  4. <tr> - добавить <tr>
  5. [ESC] [ВНИЗ] - вы знаете =)
  6. Я - перейти в начало строки и запустить режим вставки
  7. <td> - напишите <td>
  8. [ESC] - ...
  9. A - перейти к концу строки и запустить режим вставки
  10. </td> - ...
  11. [ESC] [DOWN]
  12. повторить 6-10
  13. [ESC]
  14. o - добавить строку ниже текущей и запустить режим вставки
  15. </tr> - ...
  16. [ESC] [DOWN] q - завершить запись макросов
2

Может быть, вы ищете дзен-кодирование для VIM.

0

Я знаю, что вы, вероятно, думаете о каком-то умном решении, использующем макросы, но я бы позволил своим пальцам прогуляться (поскольку у вас вряд ли будет таблица HTML длиной в сотни строк):

Для каждой строки файла замените начало строки на <td> И для каждой строки замените конец строки на </td>

%s/^/<td>/
%s/$/<\/td>/

перейти к первой строке и вставить

</tr>
<tr>

Вытяните эти строки, нажимайте стрелку вниз, пока не дойдете до следующей точки вставки, и нажмите p Продолжайте до конца файла, нажимая p каждые две строки. Здесь мне нравится использовать простой ритм: вниз, вниз, p, вниз, вниз, p и т.д.

Измените последнюю строку на

</table>

Вернитесь к началу и измените первую строку на

<table>

Очевидно, я не пробовал это (и я допускаю, что для некоторых макросов может быть проще)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .