skrót vi, aby usunąć „do następnego znaku X”


193

Rozumiem, że vi ma klawisze skrótów do usuwania znaków, słów i linii z różnymi opcjami.

Jednak nie mogłem tego znaleźć:

  • usuń z kursora do następnego określonego znaku

Na przykład, mogę wpisać du"oczekując, że edytor „usunie, dopóki nie "zostanie znaleziony następny znak”

Najbliżej wiem, d9wgdzie 9jest liczba słów do usunięcia.

Czy ktoś wie, czy to jest możliwe?


Jeśli interesują Cię Vi i Vim, mają teraz swoją własną stronę SE: Vi i Vim
deser

Odpowiedzi:


302

Użyj dtc, gdzie c jest dowolną postacią, np. Dla ciebie, którą chceszdt"

Spowoduje to usunięcie września, ale nie w tym c .

Gdybyś miał:

delete until exclamation point!

I kursor znajdował się na pierwszej spacji i podczas pisania wpisałeś dt!:

delete!

Również dfc.

Spowoduje to usunięcie do i włącznie c .

Użycie df!tego samego przykładu powyżej dałoby ci:

delete

Tylko o „ruchu” może być używany do d, c, yi podobnych poleceń.


7
Przypuszczalnie mnemonik oznacza „do”? Niezła odpowiedź.
przemyśleli

15
Możesz także usunąć poprzednią instancję postaci za pomocą wielkiej wersji poleceń ruchu. Może bardziej przydatny dla przecinków - dT,i dF,.
joelostblom

3
To nie działa na wielu liniach.
0xcaff,

3
Czy można to zrobić na wielu liniach?
Ray

2
Aby zrobić coś podobnego w zakresie wierszy, można wykonać zwykłe wyszukiwanie (jak w odpowiedzi zpletan): d/wordwyszukiwanie do word. Po nim musi być enter (aby zamknąć wyszukiwanie).
Eric O Lebigot,

59
  • Aby usunąć naprzód do znaku „X”, wpisz dtX

  • Aby usunąć do przodu za pomocą znaku „X” dfX

  • Aby usunąć wstecz do znaku „X”, wpisz dTX

  • Aby usunąć wstecz za pomocą znaku „X” dFX


30

Wejście dt # (nie polecenie: użyj go jak ruchu takiego jak G)

usunie się z kursora, ale nie uwzględniając #. Możesz podstawić dowolny znak na #.


2
To właściwa odpowiedź! df # usunie również #.
Wietnam

szukałem tego, to jest niesamowite
Nadeem Khedr

18

Wygląda na to, że @Arcege już odpowiedział na pytanie, ale musiałem go d/lusunąć, dopóki znak l; inne postacie też by działały.


3
Działa to w przypadku nowych linii.
jasonszhao

Uwaga: po tym musi być Enter.
Eric O Lebigot,

6

wprzechodzi do następującego słowa. lprzechodzi do następującego charactera.

Dlatego należy d9lusunąć kolejne 9 znaków.


2
Zamknij, lto klawisz strzałki w prawo Vima, więc właściwie usuwasz. I odwrotnie, d9husunęłoby 9 znaków pozostałych.
Walf
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.