VIM добавить тег к нескольким строкам с помощьюround.vim - PullRequest
7 голосов
/ 29 января 2012

У меня есть три (или более) строки, которые я хочу окружить тегом li (или любым другим):

Бананы
Citrus
Оранжевый

Я могу сделать это так: qaysstli>jq затем 2@a.

Есть ли способ сделать это быстрее и без макроса?

Ответы [ 4 ]

22 голосов
/ 30 января 2012
  1. Выберите визуально все строки с помощью <S-v>
  2. Тип :norm yss<li>, затем <CR>

Результат:

<li>Bananas</li>
<li>Citrus</li>
<li>Orange</li>

Диапазонытоже хороши: :.,+2norm yss<li><CR> делает то же самое, что и :1,3norm yss<li><CR>.

5 голосов
/ 30 января 2012

Используйте визуальный блок и затем окружите.

<c-v>, чтобы запустить режим визуального блока, а затем перейти к последней строке текста. Используйте $ для выбора до конца каждой строки, затем S<li>

Все вместе:

<c-v>2j$S<li>
4 голосов
/ 29 января 2012

Более быстрый способ думать об этом, используя zencoding-vim .С этим плагином вы можете визуально выделить текст, затем вы можете набрать ctr + y , и затем набрать:

ul > li*

Adnвы получите список.Это похоже на магию, и это очень быстро.

1 голос
/ 22 мая 2014

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

  1. <c-v> для запуска визуального блока, а затем используйте I для вставки первого <li>, заканчивающегося [esc].
  2. <c-v>, чтобы запустить визуальный блок, а затем используйте $, чтобы выбрать конец блока. Используйте A, а затем добавьте <li>, заканчивая [esc].

Все вместе: <c-v>2jI<li>[esc] и <c-v>2j$A<li>[esc]

...