Как мне выполнить поиск и замену блоков с помощью 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

Я не могу понять, как заставить это работать
Эван Кэрролл

атом \% V будет ограничивать шаблон так, чтобы он совпадал только внутри визуального выделения. Попробуйте:'<,'>s/\%V /*/g
DaveParillo

1
На этой странице есть хорошее описание того, что вы пытаетесь сделать. vim.wikia.com/wiki/Search_and_replace_in_a_visual_selection
DaveParillo
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.