Regex для сопоставления атрибутов и значений в Vim - PullRequest
3 голосов
/ 23 июня 2011

Искал повсюду для этого.Предположим, у меня есть блок XML, подобный этому:

<leftcol>
    <block icon="tips" text="Is it right for you?" url="/support/feasibility.html" link="Feasibility              evaluation"/>
    <block icon="question" text="Interested?" url="/support/question.html" link="Ask a question"/>
    <block icon="docs" text="Want some details?" url="/docs/" link="View documentation"/>
    <block icon="box" text="Like It?" url="/purchase.html" link="Purchase online"/>
</leftcol>

И я хочу использовать Vim для быстрого перехода к (или удаления) атрибутам и их значениям.Что было бы хорошим регулярным выражением для этого?

Я попробовал очевидное / .*=".*?", но это слишком жадно - если у меня два атрибута в одной строке, он выбирает их оба.

Любая помощь приветствуется.Я специально ищу регулярное выражение, а не плагин.

1 Ответ

5 голосов
/ 23 июня 2011

В vim не жадный оператор равен \{-}, поэтому вы можете искать:

/ [a-z]\{-}=

, чтобы соответствовать LHS каждого атрибута.

ОБНОВЛЕНИЕ: Основано на комментариях ОП ниже:

Используйте следующий не жадный шаблон поиска для поиска / сопоставления атрибута, полностью предполагая, что повсюду в RHS атрибута используется ":

/[a-z]\{-}="[^"]\{-}"

Чтобы переместить курсор кначало шаблона поиска используйте:

//

Чтобы переместить курсор в конец шаблона поиска, используйте:

//e

И, наконец, для удаления всего шаблона поиска используйте:

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