Часто при редактировании кода я выбираю блок в визуальном режиме и выполняю поиск и замену блока. Однако после внесения изменений он покидает визуальный режим. Как вы делаете новую находку и заменяете ту же самую подборку?
Часто при редактировании кода я выбираю блок в визуальном режиме и выполняю поиск и замену блока. Однако после внесения изменений он покидает визуальный режим. Как вы делаете новую находку и заменяете ту же самую подборку?
Ответы:
Вы можете повторно выбрать последнюю выбранную визуальную область с помощью gv.
:help".
gv это, безусловно, самый быстрый метод (используйте последний выбор), но если вы хотите сохранить сохраненный регион выделения (или несколько), вы всегда можете создать макросы.
Допустим, я хочу сохранить выбор моего текущего метода, который идет из строк 25-35. Я могу создать макрос, который выбирает весь метод, набрав
q //start recording
a //use register a
25G //Go to line 25
V //visual-line mode
35G //Go to line 35
q // stop recording
Затем я могу вернуть этот выбор, набрав @a(запустить макрос в регистре а). Повторите с любым регистром, строками или секциями линий, которые вы хотите. Очевидно, что если вы вносите изменения в файл, выбор также может измениться, поэтому вы можете рассмотреть возможность использования меток вместо «жесткого кодирования» номеров строк.
gvотлично работает для восстановления последнего выбора. Но иногда нужно немного больше.
Если вам когда-нибудь понадобилась более постоянная запись, посмотрите этот плагин, над которым мы сейчас работаем, на GitHub.
VisualMarks позволяет сохранять и восстанавливать визуально выбранные области так же, как вы сохраняете и отмечать определенные места в ваших файлах m. После установки и с параметрами по умолчанию используйте:
ma
в визуальном режиме, чтобы сохранить текущий выбор, чтобы пометить a, затем
<a
в обычном режиме, чтобы вернуться к этому выбору.
Предположим, я хотел заменить Goodbye на Hello, и был выбран код ниже:
public static void main(String[] args){
System.out.println("Goodbye World");
}
Я бы :s/Goodbye/Hello/набрал и vim заменит все экземпляры GoodbyeсHello
Это просто сочетание регулярных выражений vim и выбора визуального режима. Когда вы выбираете, он должен заполнить автоматически'<,'>
gvи ваш визуальный режим вернется к предыдущему состоянию выбора.