Jak usunąć następny wiersz w vimie?

10

W emacsie, ilekroć chcę usunąć kilka wierszy tekstu, używam Ck, aż cały tekst zniknie. Jednak w vimie wydaje się to nieco bardziej złożone. Wiem, że mogę to zrobić d$do końca linii i ddusunąć całą linię, w której jestem, ale jak mogę usunąć całą następną linię?

Jason Baker
źródło

Odpowiedzi:

5

Lubię to:

:+1d
Ignacio Vazquez-Abrams
źródło
16

Założenie: chcesz skończyć na linii, na której zacząłeś.

Moja odpowiedź: jddk

  • j (przesuwa się w dół)
  • dd (usuwa bieżącą linię)
  • k (przesuwa się w górę)

Wypróbuj - to szybko! W rzeczywistości są to dwa naciśnięcia klawiszy mniejsze niż obecnie akceptowana odpowiedź, ponieważ:

  1. nie trzeba przytrzymywać, [Shift]aby wprowadzić dwukropek „:” i plus „+”, oraz
  2. nie potrzebujesz domyślnej [Enter]na końcu sekwencji, ponieważ jddkwszystko jest wprowadzane w trybie wizualnym, a nie w trybie poleceń .

Plus, jddkwszystko w głównym rzędzie klawiatury.

Spędziłem dużo czasu, używając h, j, k, l do nawigacji vi, na długo zanim oprogramowanie emulacji terminala zaczęło obsługiwać klawisze strzałek. (Mówię o około 20 latach temu ;-)

Chris W. Rea
źródło
1
hjkl i tak jest szybszy. Nigdy nie korzystałem z klawiatury, która nie miała na sobie klawiszy strzałek, i zacząłem bardzo cenić skuteczność tych mapowań około 10 minut po tym, jak przestałem się denerwować ich nieintuicyjnością.
intuicyjnie
2

Możesz być także zainteresowany trybem wizualnym. Wystarczy użyć, vaby wejść i yszarpać lub dusunąć. Sprawdzanie :helpto również świetne miejsce, gdy utkniesz. Na przykład :help deleteda ci instrukcję dotyczącą większości zwykłych poleceń usuwania.

Joe Bane
źródło
0

Jeśli chcesz usunąć kilka linii z rzędu, możesz użyć dddo usunięcia linii, na której jesteś, a następnie naciskać (lub przytrzymać) .(kropkę), aby powtórzyć polecenie.

coneslayer
źródło
lub wpisz Ndd, gdzie N jest liczbą linii do usunięcia. powiedzmy, aby usunąć bieżącą linię i kolejne dwie linie (łącznie 3), wpisz 3dd
quack quixote