Часто під час редагування коду я вибираю блок у візуальному режимі і здійснюю пошук та заміну над блоком. Після внесення змін, він залишає візуальний режим. Як ви робите нову знахідку та заміну на один і той же вибір?
Часто під час редагування коду я вибираю блок у візуальному режимі і здійснюю пошук та заміну над блоком. Після внесення змін, він залишає візуальний режим. Як ви робите нову знахідку та заміну на один і той же вибір?
Відповіді:
Ви можете повторно вибрати останню обрану зорову зону за допомогою 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
(запустити макрос в регістрі a). Повторіть з будь-яким регістром, рядками або розділами рядків, які вам потрібно. Очевидно, що якщо ви внесете зміни до файлу, вибір може також змінитися, тож ви можете розглянути можливість використання позначок замість номерів рядків "жорстке кодування".
gv
відмінно підходить для відновлення останнього виділення. Але одному іноді потрібно трохи більше.
Якщо вам колись потрібні були більш стійкі записи, подивіться цей плагін, над яким ми зараз працюємо на GitHub.
VisualMarks дозволяє зберігати та відновлювати візуально вибрані області так само, як ви зберігаєте та позначаєте конкретні місця у ваших файлах m
. Після установки та з параметрами за замовчуванням використовуйте:
ma
у візуальному режимі, щоб зберегти поточний вибір для позначення a
, а потім
<a
у звичайному режимі, щоб повернутися до цього вибору.
Припустимо, я хотів замінити Goodbye на Hello і був обраний код нижче:
public static void main(String[] args){
System.out.println("Goodbye World");
}
Я хотів би ввести :s/Goodbye/Hello/
і ВІМ замінить всі екземпляри Goodbye
зHello
Це просто поєднання регулярних виразів vim та вибору візуального режиму. Коли ви виберете, він повинен автоматично заповнитися'<,'>
gv
і ваш візуальний режим повернеться до попереднього стану вибору.