Удалить текст между HTML-тегами в vim?

Я знаю

di<

будет удаляться в самом теге HTML.

Есть ли простой способ удалить текст между двумя тегами?

<span>How can I delete this text?</span>

Спасибо!

Ответ 1

dit удалит текст между соответствующими тегами XML. (it для "внутреннего блока тегов".)

См. :h it и :h tag-blocks.

Ответ 2

cit
ci"

Две из лучших команд для повышения производительности vim.

Я экономлю много времени и сил только с этими двумя.

Ответ 3

попробуйте dt <, пока курсор находится на первом символе для удаления. В вашем примере "H".

Ответ 4

(курсор на первый символ для удаления) v/< [ввод] д

Это решение начинается с первого символа, затем переходит в визуальный режим ( "v" ). Затем он ищет следующую скобку начала ( "/<" ), а затем нажмите "Enter", чтобы завершить поиск.

В этот момент ваш визуальный выбор будет охватывать текст для удаления. нажмите d ( "d" ), чтобы удалить его.

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

[курсор на начало файла] ОК /" > [войти] лв /< [ввод] dnq

затем нажмите:

20 @а

сделать это для 20 тегов

Ответ 5

Если вы пытаетесь сделать обратное удалению текста между флагами, я предлагаю установить Vim-Surround и запустить dst, который удаляет тег окружения