Jak mogę szybko usunąć wiersz w VIM, zaczynając od pozycji kursora?


267

Chcę móc usunąć resztę wiersza, od którego zaczynam od pozycji kursora w VIM. Czy jest na to łatwe polecenie?

Aby to zilustrować, jest to przed poleceniem.

The quick brown dog jumps over the lazy fox.
     ^
     |----- Cursor is here.

To jest po poleceniu

The q
     ^
     |----- Cursor is here.

Odpowiedzi:


430

(Edytowane w celu uwzględnienia dobrych dodatków komentatora :)

Dlub jego odpowiednik d$usunie resztę wiersza i pozostawi cię w trybie poleceń. Club c$usunie resztę linii i przejdzie w tryb wstawiania, a nowy tekst zostanie dodany do linii.

Jest to część vitutori vimtutor, doskonałe „czyta” dla vim początkujących.


1
Blast, pomyślałem, że to coś łatwego, myślałem o jakiejś kombinacji, da potem coś. Uznałem, że szybciej byłoby opublikować pytanie tutaj, a także skorzystać z pomocy innych osób, które domyślnie szukają w Internecie przed przeczytaniem instrukcji.
Anthony

2
Lub Cjedyny „prawdziwy” sposób na ustawienie kursora we wskazanej pozycji, chociaż to powoduje przejście do trybu wstawiania.
Walter

1
@Anthony: Jest też „ dpo coś” -equivalent dowodzenia D, gdzie „coś” jest $ruch: d$.
ib.

2
A jeśli chcesz skończyć w trybie wstawiania, użyj C(lub c$)
Benoit

7
Zdaję sobie sprawę, że na to rozwiązanie już udzielono odpowiedzi, ale szukałem sposobu na usunięcie całej linii za pomocą VIM i znalazłem to. Okazało się, że opcja, której szukałem, pochodziła ddz trybu poleceń. Mam nadzieję, że pomoże to wszystkim, którzy się z tym spotkają.
Frito,


21

Możesz być również zainteresowany C, spowoduje to również usunięcie końca linii jak D, ale dodatkowo spowoduje przejście do trybu wstawiania w miejscu kursora.




5

To bardzo stare pytanie, ale ponieważ VIM nadal jest istotny, należy wyjaśnić.

Każda odpowiedź i komentarz tutaj od października 2018 r. Odnosi się do czegoś, co powszechnie określa się jako akcję „wycięcia”, a zatem użycie dowolnej z nich zastąpi to, co jest obecnie w rejestrze bezimiennym VIM . Ten rejestr jest zwykle traktowany jak domyślny schowek kopiuj / wklej, więc żadna z tych odpowiedzi nie będzie działać zgodnie z oczekiwaniami, jeśli usuniesz resztę wiersza, aby później wkleić coś w to samo miejsce, ponieważ to, co właśnie zostało usunięte, zostanie następnie wklejone w miejsce tego, co było szarpane wcześniej.

Prawdziwym poleceniem usuwania w kontekście PO jest "_D(lub "_Cjeśli pożądany jest tryb wstawiania). Wysyła to usuniętą zawartość do rejestru czarnej dziury , wyznaczonego przez "_, gdzie nikt już nie będzie niepokoił (chociaż nadal można cofnąć tę akcję za pomocą u).

To powiedziawszy, wszystko, co było ostatnio szarpane, jest przechowywane w rejestrze 0 , a nawet jeśli zostanie zastąpione w rejestrze bez nazwy, nadal można go wkleić "0p.

Dowiedz się więcej o rejestrze czarnej dziury i rejestrach ogólnie dla dodatkowej zabawy VIM!


4

Dlub ddusuwa i kopiuje linię do rejestru. Możesz użyć, Vxktóra tylko usuwa linię i pozostaje w trybie normalnym.

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.