Korzystam z Ubuntu i próbuję usunąć wszystkie 100 wierszy z vi
edytora, ale dostałem pytanie o wywiad w jednym poleceniu.
command-line
vi
command
mayur Mehta
źródło
źródło
echo -n > <file>
usuwa wszystkie wiersze z pliku (w rzeczywistości po prostu nadpisuje plik „”).echo
;> $file
działa dobrze.vi
w wywiadzie?vim-gtk
pakiet, ponieważ daje to dostęp do xclipboard w vimie), wpiszvimtutor
w linii poleceń (nie w vimie), aby uzyskać interaktywny samouczek z podstaw. Nie powinno to zająć więcej niż pół godziny i jest to najlepszy przewodnik dla początkujących po korzystaniu z vi / vim, który prawdopodobnie znajdziesz.vi
(ustnie lub przez wznowienie) lub jeśli pytanie poprzedzone było: „Ok, jako administrator musisz wiedzieć coś o edytorach wiersza poleceń, prawda ? Użyłeśvi
?Odpowiedzi:
W trybie normalnym rób
dd
usuwa bieżący wiersz. Wcześniejsze polecenie100
powoduje, że powtarza się 100 razy.Jeśli w pliku znajduje się mniej niż 100 linii, zaczynając od bieżącego wiersza, w zależności od
vi
implementacji, albo nie usunie żadnego, albo usunie tyle, ile jest. W przypadkuvim
zależy to od tego, czy opcjacp
akacompatible
jest włączona, czy nie.źródło
100dd
jest poprawną odpowiedzią. Zastanawiam się, co robisz.usuń 100 linii do przodu (w tym) bieżącej
powtórz dd (usuń bieżący wiersz) 100 razy:
usuń z bieżącej linii do 99 linii do przodu
usuń 100 linii wstecz (włączając) bieżącą
usuń wiersze w określonym zakresie według numeru wiersza
usuń linie z zakresu rozpoczynającego się od bieżącej linii
itd itd.
źródło
:.,+99d
Jeśli wszystkie wiersze w pliku mają zostać usunięte, to polecenie vi określa zakres usuwania:
1
oznacza pierwszą linię i$
oznacza ostatnią linięźródło
:%d
(w kontekście „:” „:% ...” jest skrótem do „: 1, $ ...”)d
G
klucze & rarr; zabij całą zawartość od faktycznej [np. górnej linii] do dolnej liniiChcesz usunąć wszystkie linie w pliku? Otwórz plik za pomocą
vi
. Podczas gdy na początku pierwszego wiersza - domyślnej lokalizacji kursora po otwarciu pliku - naciśnij, Esca następnie dG.Uwaga: akcja
d
wskazuje usunięcie iG
wskazuje ostatni wiersz pliku. Tak więc, gdy naciśniesz dowolną linię dG, usuwa ona całą linię, zaczynając od bieżącej linii do ostatniej.Jeśli wiesz, jakie kolejne linie do usunięcia - powiedzmy, z linii 101 do 200 - typ w następujących kluczowych sekwencji: Esc:101,200d.
źródło
Bez względu na to, gdzie jesteś w pliku, możesz to zrobić
ggdG
:%d
poradziłby sobie lepiej przy mniejszej liczbie naciśnięć klawiszy. Cóż, licząc klawiszeshift
ienter
, właściwie dwa kolejne naciśnięcia klawiszy niż wyżej.Robi coś takiego
100dd
byłoby usuwać tylko do 100 linii, skąd jesteś, i że nie mogą usunąć wszystkie wiersze z pliku, w zależności od aktualnej pozycji linii.źródło
Esc n dd. n jest liczbą linii do usunięcia z bieżącej linii i włącznie z nią. Naciśnij przycisk „Esc”, następnie „n”, a następnie „dd”. Dla lepszego zrozumienia
źródło