Как вставить что-то между HTML-тегами в Vim? - PullRequest
9 голосов
/ 18 февраля 2010

Нажатие p вставляет вещи ниже текущей строки, dit удаляет вещи внутри HTML-тегов. Как вставить что-то в теги html?

    Nor here
<p>I want to paste something here</p>
    Not here

Ответы [ 5 ]

11 голосов
/ 18 февраля 2010

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

У меня работает.

10 голосов
/ 18 февраля 2010

Результат нажатия P и p зависит от того, что у вас есть в выбранном регистре на тот момент. Если вы удалите или восстановите одну или несколько целых строк (например, с помощью команд dd, Y или Vd), то нажатие P вставит содержимое вашего регистра в строку над текущая строка, тогда как p будет вставлена ​​в строку под курсором.

Если вы удалите или восстановите фрагмент текста, длина которого меньше строки (например, с помощью команд D или yw), тогда P вставит содержимое вашего регистра непосредственно перед текущей позицией курсора, и p будет вставлен сразу после курсора (т.е. на той же строке).

Если это поможет, вы можете считать, что выбор линии аналогичен block html-элементам (например, <div>), а символьный выбор - аналогу inline html-элементов (например, span).

Итак, чтобы ответить на ваш вопрос: это зависит. Предположим, что у вас есть раздел текста в реестре, вам нужно разбить целевой тег на две строки перед выполнением операции вставки. В вашем примере вместо dit для удаления содержимого тега выполните cit, чтобы удалить тот же раздел и перейти в режим вставки. Нажмите return один раз, чтобы вставить новую строку, затем esc, чтобы вернуться в обычный режим, затем P, чтобы вставить свой регистр линий над строкой с закрывающим тегом.

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

"_ditP

"_ удаляет текст в регистр черная дыра , гарантируя, что он не перезаписывает то, что находится в вашем регистре по умолчанию. dit удаляет содержимое тега, а P вставляет содержимое вашего регистра по умолчанию перед позицией курсора.

2 голосов
/ 18 февраля 2010

vitp следует обрабатывать пастой, подобной линии.

2 голосов
/ 18 февраля 2010

удалить текущий контент между тегами с помощью команды

cit

, который «изменится в тегах», и как только содержимое исчезнет, ​​вы можете вставить его нажатием средней кнопки мыши или, если вам нужно, вернуться в командный режим и использовать обычный режим p / etc.

0 голосов
/ 18 февраля 2010

Вы можете нажать «v» для визуального отображения, затем перейти туда, где находится курсор, и нажать p или P.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...