Pozostałe istniejące odpowiedzi zależą od definicji i wykrycia bloku przez vima. Moją strategią dla tego rodzaju usuwania jest użycie c
polecenia w połączeniu z f
ruchem i rzeczywistą postacią, aby zatrzymać. Spowoduje to wówczas usunięcie znaku stop, ale ponieważ był to również ostatni klawisz, który nacisnąłeś, powtórzenie go dwa razy ma prawie zerowy koszt, i to wstawi go ponownie od czasu c
zmiany trybu wstawiania.
Aby wyjaśnić za pomocą przykładów, dla
func1(x|, func2(), y);
polecenie c2f))
da
func1(x)|;
które z początku mogą wydawać się mniej eleganckie niż niektóre inne odpowiedzi, zauważ jednak, że ta strategia jest uniwersalna i nie zależy od żadnej definicji bloku.
Na przykład z
<div| class="some-class">text</div>
polecenie cf>>
da
<div>|text</div>
Lub podczas edycji plików csv, takich jak
2016-11-29,question,vi|.stackexchange.com,10435
polecenie cf,,
da
2016-11-29,question,vi,|10435
Często używam tego, aby usunąć resztę ciągu z
printf("Hello world| - a boring example\n");
do
printf("Hello world\|n");
z cf\\
lub z
print("Hello world| - a boring example");
do
print("Hello world"|);
z cf""
.
Spowoduje to zmianę bieżącej pozycji na nieco inne miejsce niż wymagane, a także przejście do trybu wstawiania. Chciałem jednak udostępnić moje rozwiązanie polegające na usunięciu reszty czegokolwiek.
C);
to w tym konkretnym przypadku.