Як зробити блок пошуку та заміни на Vim?


8

У мене є текст у Vim

  1. натисніть, Ctrl+Vщоб перевести VIm у блок-режим
  2. виділити текст, який я хочу
  3. type :this дає це підказка:'<,'>
  4. Я додаю до підказки своє регулярне вираження s/ /*/g. Це залишає мене :'<,'>s/ /*/gі текст виділяється
  5. Я натиснув Enter

На жаль, він працює на всій лінії для блоку, а не тільки на блок. Чи все-таки потрібно блокувати пошук і заміну?

Відповіді:


12

При використанні колишніх команд у режимі візуального блоку :вони завжди працюють на весь рядок. Існує два шляхи навколо цього:

  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.