2017-02-13 21 views
0

После замены я хотел бы, чтобы vim выделил текст, который только что был изменен (вместо слов, которые соответствуют моему поиску). Скажем, если я набираю s/old/new/, я хочу выделить new (вместо old). Есть ли способы сделать это?Как выделить новый текст в vim

Я думал о запуске поиска по new после шага замены, но также хотел бы выделить слова, которые уже были в тексте раньше.

+0

Я думаю, что это невозможно легко. Плагин можно было бы написать для этого, но если я не пропущу что-то, ему понадобится (довольно некоторое) время написать – yolenoyer

ответ

0

Командный разделитель в vim is |

Вы можете запустить поиск после замены в одной и той же линии

:s/old/new/ | /new

+0

Спасибо, это хороший старт, но, как я уже сказал, это также выделит все «новые» слова, которые были в текст раньше. Скажем, если я запустил эту команду в строке 'old new', каждое слово будет выделено, а я хочу выделить только первое. – Aratz

1

Если вы хотите выделения из тех случаев, которые были заменены (не все new из них), вы должны написать свой собственный :Substitute команда, которая записывает каждую позицию изменения (через :help sub-replace-expr), а затем создает регулярное выражение, которое соответствует только этим позициям (с использованием \%l и \%c). Возможность, но довольно вовлечена.

Возможно, вы знаете эту функцию от других редакторов; старайтесь жить без него, это не обязательно.

 Смежные вопросы

  • Нет связанных вопросов^_^