Vim: Вставить совпавший шаблон
Мы написали несколько советов о сопоставлении с шаблоном, в основном потому, что это очень ценный навык, который нужно развивать. Некоторые популярные из них включают Vim: Повторить последнюю замену, Vim: Оставайтесь в режиме поиска и Vim: Подсчёт вхождений.
Но также, кажется, так много всего нужно узнать об этом уголке Vim. Вот трюк, который я недавно изучил: Амперсанд &
в вашем замещающем шаблоне вставит совпавший шаблон в замещающий текст. Это может быть полезно во многих местах, например, для окружения текста чем-либо. (Хотя вы используете Surround.vim, верно?)
Взгляните на видео внизу этой статьи. В демонстрации я использую этот трюк, чтобы сопоставить URL-адреса и заменить их синтаксисом Markdown. Замена выглядит так:
%s/https\?.*/[&](&)/g
Вот что это делает:
%
— Устанавливает диапазон на весь файл.s
— Замена./https\?.*/
— регулярное выражение для соответствияhttp
илиhttps
и всему остальному после него.[&](&)
— Здесь магия&
вставляет совпадающий текст. В данном случае URL. Остальные символы интерпретируются буквально, давая нам ссылку на URL в результирующем Markdown./g
— изменяет все совпадения в строке.
Обратите внимание, что не все разновидности Markdown поддерживают этот формат бестекстовой ссылки. Но, несмотря ни на что, смысл в том, чтобы продемонстрировать использование совпавшего шаблона внутри подстановки. (Кроме того, если вы пишете много Markdown, вам может пригодиться vim-markdown-preview)
Этот совет хорошо сочетается с использованием заглавных и строчных экранирующих символов для изменения регистра. Теперь перейдём к демонстрационному видео: