Często podczas edycji kodu wybieram blok w trybie wizualnym, szukam go i zastępuję nad tym blokiem. Po wprowadzeniu zmian opuszcza tryb wizualny. Jak wykonać nowe wyszukiwanie i zastąpić ten sam wybór?
Często podczas edycji kodu wybieram blok w trybie wizualnym, szukam go i zastępuję nad tym blokiem. Po wprowadzeniu zmian opuszcza tryb wizualny. Jak wykonać nowe wyszukiwanie i zastąpić ten sam wybór?
Odpowiedzi:
Możesz ponownie wybrać ostatnio wybrany obszar wizualny za pomocą gv
.
:help
”.
gv
jest zdecydowanie najszybszą metodą (użyj ostatniego zaznaczenia), ale jeśli chcesz mieć stabilny zapisany region zaznaczenia (lub kilka), zawsze możesz tworzyć makra.
Powiedzmy, że chcę zapisać wybór mojej bieżącej metody, która pochodzi z wierszy 25–35. Mogę utworzyć makro, które wybiera całą metodę, pisząc
q //start recording
a //use register a
25G //Go to line 25
V //visual-line mode
35G //Go to line 35
q // stop recording
Następnie mogę odzyskać ten wybór, pisząc @a
(uruchom makro w rejestrze a). Powtórz z dowolnym rejestrem, liniami lub sekcjami linii, które chcesz. Oczywiście, jeśli wprowadzisz zmiany w pliku, wybór może się również zmienić, więc możesz rozważyć użycie znaków zamiast numerów wiersza „na stałe”.
gv
działa świetnie przy odzyskiwaniu ostatniego zaznaczenia. Ale czasami trzeba trochę więcej.
Jeśli kiedykolwiek potrzebowałeś bardziej trwałego zapisu, spójrz na tę wtyczkę, nad którą obecnie pracujemy na GitHub.
VisualMarks pozwala zapisywać i przywracać wizualnie wybrane obszary, tak jak zapisujesz i zaznaczasz określone lokalizacje w swoich plikach m
. Po zainstalowaniu i przy domyślnych opcjach użyj:
ma
w trybie wizualnym, aby zapisać bieżące zaznaczenie, aby zaznaczyć a
, a następnie
<a
w trybie normalnym, aby wrócić do tego wyboru.
Załóżmy, że chciałem zastąpić „Do widzenia” Cześć i wybrano poniższy kod:
public static void main(String[] args){
System.out.println("Goodbye World");
}
Chciałbym wpisać :s/Goodbye/Hello/
i vim będzie zastąpić wszystkie wystąpienia Goodbye
zHello
Jest to po prostu kombinacja wyrażeń regularnych vima i wybranych trybów wizualnych. Po wybraniu powinno się ono automatycznie wypełnić'<,'>
gv
a tryb wizualny powróci do poprzedniego stanu zaznaczenia.