Есть ли поиск команды замены?


12

Мне действительно нравится incsearchфункциональность Vim . Есть ли способ, чтобы он или что-то подобное работало, пока я делаю замену?

Например, если в обычном режиме я набираю:

:%s/potato/

Могу ли я potatoвыделить все s в моем файле так же, как они выделены incsearchпри написании

/potato

?

Это уже очень помогло бы мне при использовании регулярных выражений. Очень, очень хорошо иметь, когда я напишу это:

:%s/potato/banana/

Он заменит potatos на bananas и выделит их - возможно, замены должны быть другого цвета. Он не может «зафиксировать» изменения, пока я не нажму клавишу ввода).

Я использую neovim на данный момент, на случай, если это поможет.


1
Вы имеете в виду incsearch? hlsearchдолжно работать ootb, если я наберу текст :%s/potato/\0/для замены potatoна себя, то я увижу все совпадения подсвеченными.
Джадерберг

Inded, я имел ввиду incsearch. Замена в моем вопросе, спасибо.
kikito

Это, вероятно, не кошерный, но :/pattern<CR>работает нормально, затем добавьте% s и строку замены. Thene снова, так что уточняет поиск и использует CTR-R / для вставки в поисковую часть:%s/
Steve

Присоединение к @jjaderberg: :%s/potato/carrot/cпозволит вам перейти («подтвердить») через ваши замены (добавить, gчтобы заменить все экземпляры в одной строке), и hlsearchвы увидите их заранее.
Рольф

Ответы:


9

После небольшого поиска я нашел эту проблему NeoVim , которая, в свою очередь, была закрыта этим пиаром , который привел меня к inccommandнастройке. Добавив это в мой конфигурационный файл:

set inccommand=nosplit

заставляет NeoVim вести себя почти так, как я и просил в своем вопросе. Я не нашел что-то эквивалентное для обычного Vim, но я не смотрел на это очень энергично.


4
В вашем situtaion, для incsearchв subtitutions (будучи ленивый Vimmer и медленно принять нео вещи) , я бы , вероятно , искать картофель ( /potato) пользуется обычным инкрементным поиском highlighighting, а затем заменить пустой поиск: %s//banana. Но я не знаю, как это соотносится с set inccommand=nosplitдругими аспектами.
Джадерберг

Благодарность! Я не знал "пустой трюк поиска". Я постараюсь запомнить это, когда я буду vim на своих серверах
kikito

1
@jjaderberg, кстати, мне inccommandнастолько понравились настройки, что я сделал asciinema, показывая его на работе, на случай, если он побудит вас попробовать neovim
kikito

2
@jjaderberg Я думаю, что это достойный ответ.
Богатый

К сожалению, ссылка на asciinema сейчас мертва.
SJY
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.