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 replacedArgjak 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".Fjest taki sam jakfwyszukiwania w lewo. Poniższe odpowiedzi wyglądają lepiej na twoje pytanie, aleFsame w sobie są przydatnym poleceniem.