Wiem, że mogę usunąć z kursorem aż włącznie pierwszego wystąpienia danego znaku X z d/x<CR>
lub ze v/x<CR>d
jeśli chcę zobaczyć wybór, a następnie usunąć. Jak mogę usunąć z bieżącej pozycji kursora do n- tego wystąpienia x ?
Na przykład, jeśli kursor znajduje się za pierwszą spacją w
yada yada yada
yada yada yada x
yada yada yada x
yada yada yada x
xx
i wpisuję polecenie, aby usunąć do trzeciego x wynik musi być:
yada
xx
search
cut-copy-paste
Erwin Rooijakkers
źródło
źródło
f
i przyjaciele (F
,t
,T
,;
): np2fx
będzie Ci na sekundęx
, lub2;
powtórzy ostatnif
dwukrotnie.Możesz to zrobić, pisząc
gdzie:
źródło
jest powszechnie używany w vimie do powtarzania makra „n” razy.
więc aby usunąć do pierwszego wystąpienia x, użyłbyś
1dfx
. Podobnie, aby usunąć do trzeciego wystąpienia x, użyłbyś3dfx
.źródło
@x
gdziex
jest twój rejestr. To, o czym mówisz, to polecenie trybu normalnego.<n>macro
nie jest to standardowa notacja w vimie dla makr, a ponieważ twoja odpowiedź używa polecenia trybu normalnego, jest prawie taka sama jak komenda kapila.Dany:
gdzie
$
wskazują końce linii (:set list
tryb), jeśli kursor znajduje się na początku drugiejyada
linii w pierwszym wierszu, najpierw musimy cofnąć się do poprzedniej spacji za pomocą h, aby uwzględnić ją podczas usuwania. Więc po prostu 4d/xEnter. Innymi słowy, tylko liczba przed d/x. Wynik jest dokładnie:źródło