Как мне выполнить поиск и замену блоков с помощью Vim?

8

У меня есть текст в Vim

  1. нажмите, Ctrl+Vчтобы перевести VIm в режим блокировки
  2. выделите текст, который я хочу
  3. типа :это дает это приглашение:'<,'>
  4. Я добавляю в подсказку свое регулярное выражение s/ /*/g. Это оставляет меня :'<,'>s/ /*/gи текст выделен
  5. Я ударил войти

К сожалению, он работает на всей строке для блока, а не только на блоке. Есть ли в любом случае сделать блок поиска и замены?

Эван Кэрролл
источник

Ответы:

12

При использовании ex-команд в режиме визуального блока :они всегда работают по всей строке. Есть два способа обойти это:

  1. \%VАтом будет соответствовать только внутри зрительной области. Пытаться

    :'<,'>s/\%V /*/g
    

    Видеть :help %V

  2. Существуют специальные визуальные версии некоторых команд, live v_s или v_r. Видеть:help visual-operators
DaveParillo
источник
Я не могу понять, как заставить это работать
Эван Кэрролл
атом \% V будет ограничивать шаблон так, чтобы он совпадал только внутри визуального выделения. Попробуйте:'<,'>s/\%V /*/g
DaveParillo
1
На этой странице есть хорошее описание того, что вы пытаетесь сделать. vim.wikia.com/wiki/Search_and_replace_in_a_visual_selection
DaveParillo