Próbowałem postępować zgodnie z następującymi wskazówkami:
Jak usunąć zaznaczony tekst w edytorze VI
ale
5dd
daje
E492: To nie jest polecenie edytora: 5dd
Wtedy spróbowałem:
5d
Który usuwa tylko jedną linię. Jak mogę usunąć wiele linii?
Odpowiedzi:
Wygląda na to, że wprowadzasz polecenia w trybie poleceń (inaczej „tryb Ex”). W tym kontekście
:5d
usunąłby wiersz numer 5, nic więcej. Aby5dd
działać zgodnie z przeznaczeniem - to znaczy usunąć pięć kolejnych wierszy zaczynających się od kursora - wprowadź go w normalny tryb i nie poprzedzaj poleceń znakiem:
.źródło
To jest dla mnie łatwiejsze
/superuser/170795/how-can-i-select-and-delete-lines-of-text-in-vi
źródło
Jeśli znasz numery wierszy, możesz usunąć wiele wierszy (zakresów):
Uwaga: d oznacza usuń
gdzie
start_line_no to linia początkowa no, którą chcesz usunąć, a end_line_no to linia końcowa no, którą chcesz usunąć. Linie między początkiem a końcem, w tym początek i koniec, zostaną usunięte.
Na przykład:
Wiersze od 45 do 101, w tym od 45 do 101, zostaną usunięte.
źródło
$
do oznaczenia ostatniej linii w pliku. Więc:45,$d
usunie każdą linię od 45 do końca./<\/div>/
:.,[end_line_no]d
Polecenia wymienione do użytku w trybie normalnym (przedrostek oznacza :tryb poleceń).
Przetestowane w Vimie.
Według kwoty linii:
Według numerów linii:
Backwards range given, OK to swap (y/n)?
źródło
Jeśli wolisz metodę niewizualną i znasz numery linii, chciałbym zasugerować Ci inny prosty sposób.
Przykład
Moja metoda sugeruje wpisanie poniższego polecenia w trybie poleceń:
Brzmi:
Zauważ, że na
vim
możesz użyćgg
zamiastG
.Porównaj z odpowiedzią @Bonnie Varghese, która brzmi:
Powyższe polecenie z jego odpowiedzi wymaga wpisania 9 razy, w tym enter, gdzie moja odpowiedź wymaga wpisania 8 - 10 razy. Zatem szybkość mojej metody jest porównywalna.
Osobiście wolę coś
45Gd101G
więcej,:45,101d
ponieważ lubię trzymać się składni polecenia vi, w tym przypadku:źródło
d5d "wycina" pięć linii
Zwykle po prostu wrzucam liczbę w środku, na przykład:
d7l = usuń 7 liter
źródło
Naciśnij Escklawisz, aby upewnić się, że nie jesteś w trybie edycji. Umieść kursor w pierwszej linii, która ma zostać usunięta. Wejdź
:5dd
. Bieżący wiersz i następne cztery wiersze powinny zostać usunięte.Alternatywnie, jeśli masz włączoną numerację linii ...
Naciśnij Escklawisz, aby upewnić się, że nie jesteś w trybie edycji. Wpisz,
:#,#d
gdzie „#” oznacza początkowy i końcowy numer linii do usunięcia.źródło
Wpisz (dla numerowanych linii).
:set number
źródło
Jeśli chcesz usunąć zakres PO wyzwoleniu określonej linii, możesz użyć czegoś takiego
To usuwa 11 wierszy (włącznie) po każdym spotkaniu
^TMPDIR
.źródło
to jest dxd, a nie ddx
jeśli chcesz usunąć 5 linii, przesuń kursor na początek pierwszej linii do usunięcia i d5d
źródło
Aby usunąć wszystkie linie użyj - ESC gg dG Aby usunąć kilka linii, powiedzmy 5, a następnie użyj ESC 5dd
źródło
Można to zrobić następująco:
źródło