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.
replace
cursor-motions
l4mpi
źródło
źródło
?"<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.Odpowiedzi:
Od /superuser/537453/vim-copy-quoted-string-without-whitespace : użyj
2i"
zamiasta"
. Zobacz także:help i'
.źródło
Istnieje wtyczka Wellle's target.vim . Aby zacytować odpowiednią część (w sekcji „ Cytat ”):
a' a" a
źródło
a"
i używaA"
oryginalnego zachowania?Alternatywnie możesz użyć obiektu tekstowego argument / parametr. Teraz Vim nie ma rodzimych obiektów tekstowych argumentów, ale istnieje kilka wtyczek, które:
Osobiście używam własnej wtyczki, argumentative.vim, ale słyszałem dobre rzeczy o obu sideways.vim i target.vim.
źródło