Używam tego a"
ruchu dość często w vimie; np. użycie ca"
podczas refaktoryzacji fragmentu kodu w celu zastąpienia zakodowanego na stałe argumentu nazwą zmiennej. Problem z tym podejściem polega na tym, że a"
obejmuje wiodące białe znaki, jeśli nie ma końcowych białych znaków :
Uwzględnia się dowolne końcowe białe spacje, chyba że ich nie ma, uwzględniane są wiodące białe spacje.
Tak więc, gdy edytuję wywołanie funkcji w ten sposób:
aFunction(arg1, "toBeReplaced", arg3) #original
aFunction(arg1, replacedArg, arg3) #refactored
Muszę ręcznie re-insert przestrzeni przed replacedArg
jak ca"
usunie go.
Czy istnieje podobny ruch, który nie obejmuje tej białej przestrzeni, czy też jest coś innego, czego mogę użyć zamiast tego ca"
, oszczędza mi konieczności wpisywania dodatkowej spacji?
Uwagi:
cf"
robi to, co chcę, o ile ciąg nie zawiera cudzysłowów, ale wymaga ode mnie kursora na początku łańcucha. Chciałbym czegoś, czego mogę użyć z dowolnego miejsca w ciągu, i?"<Enter>cf"
raczej niezręcznie jest pisać.- Nie chodzi tu o pojedyncze
<Space>
naciśnięcie klawisza, a bardziej o to, że często początkowo zapominam o wpisaniu miejsca, co kosztuje mnie co najmniej cztery dodatkowe naciśnięcia klawiszy (bi<Space><Esc>
) i nie koncentruje się na tym. Dlatego długość polecenia zamiany nie jest tak ważna, dopóki usuwa tylko tekst między podanymi znakami, a następnie przechodzi w tryb wstawiania.
?"<Enter>
szukać cudzysłowu w wierszu, możesz użyćF"
.F
jest taki sam jakf
wyszukiwania w lewo. Poniższe odpowiedzi wyglądają lepiej na twoje pytanie, aleF
same w sobie są przydatnym poleceniem.