Chciałbym zoptymalizować mój przepływ pracy „znajdź i zamień” w Vimie. Często to robię, bo jestem pewien, że większość z was też. Zwykle coś w stylu - skopiuj blok i zmień nazwę zmiennej w kilku miejscach. Wiem, wiem, to prawdopodobnie wyzwala odruch „dlaczego kopiujesz i wklejasz kod”, ale nie idźmy tą drogą… Jest wiele ważnych przypadków użycia :)
Jestem świadom poszukiwaniu i zastąpienie polecenia: :s
albo :%s
ale ja ich nie lubię. Zmusza mnie do wpisania zarówno pełnej nazwy zmiennej, której szukam, jak i tego, na co ją zmieniam. Może jest lepszy sposób, aby naprawić ilość pisania :%s
? Często używam długich opisowych nazw zmiennych, więc jest to dla mnie naprawdę przełom. Nie podoba mi się również to, jak pisanie od podstaw nazwy zmiennej jest podatne na literówki i może pochłaniać czas i siłę roboczą podczas wyszukiwania literówek. Wolę pisać raz, a potem kopiować i wklejać, aby w miarę możliwości całkowicie tego uniknąć.
Mój obecny przepływ pracy wykorzystuje kombinację ruchów / yank / select / search / put, aby poruszać się po pliku i zamieniać jeden po drugim. To nie jest świetne, ale ma tę zaletę, że pozwala uniknąć wpisywania pełnych nazw zmiennych. Być może będę musiał po prostu wpisać kilka pierwszych liter /
lub użyć innego polecenia ruchu (np. fx
) W zależności od tego, co jest w pobliżu, a następnie naciśnij, ve
aby zaznaczyć całe słowo. Nie przeszkadza mi również to, że muszę powtarzać za każdym razem. Nigdy nie dokonuję pełnego znalezienia zamiennika bez potwierdzenia każdej zmiany. Byłoby jednak znacznie lepiej, gdybym mógł powtórzyć czynność zastępowania jednym naciśnięciem klawisza (czego nie mogę zrobić z tą metodą). każda wymiana jest zazwyczaj coś w n
czym ve
wtedy p
(lub nawet gorzej "0p
)
Czy jest szybszy sposób?
n
ve
"0p
. Które niestety nie da się powielić za pomocą.
n ce ctrl-r 0 <esc> n.n.n.n.n.n.
.
powtarza ostatni „blok poleceń” (nie jestem pewien dokładnego terminu. na przykład: move + action + text. na przykład:cwtoto<Esc>
(zmień kursor na koniec słowa za pomocą „toto”),c/foo<enter>bar<Esc>
(zmień kursor na tuż przed „ foo ”i zamień na„ bar ”). następnie możesz przenieść (kursorem, hjkl lub liczbą + hjkl (robi to n razy), G (przejdź na koniec pliku), / coś (przejdź tuż przed„ coś ”) itp.), a następnie naciśnij przycisk,.
aby ponownie wykonać ten sam„ blok poleceń ”