Unix / Linux - samouczek edytora vi
W tym rozdziale zrozumiemy, jak działa edytor vi w systemie Unix. Istnieje wiele sposobów edycji plików w systemie Unix. Edycja plików za pomocą ekranowego edytora tekstuvito jeden z najlepszych sposobów. Ten edytor umożliwia edycję linii w kontekście innych linii w pliku.
Ulepszona wersja edytora vi o nazwie VIMzostała również udostępniona teraz. Tutaj VIM oznaczaVi IMudowodnione.
vi jest ogólnie uważany za de facto standard w edytorach Unix, ponieważ -
Zwykle jest dostępny we wszystkich wersjach systemu Unix.
Jego implementacje są bardzo podobne pod każdym względem.
Wymaga bardzo niewielu zasobów.
Jest bardziej przyjazny dla użytkownika niż inne edytory, takie jak ed albo ex.
Możesz użyć viedytor do edycji istniejącego pliku lub stworzenia nowego pliku od podstaw. Możesz także użyć tego edytora, aby po prostu przeczytać plik tekstowy.
Uruchomienie edytora vi
W poniższej tabeli wymieniono podstawowe polecenia dotyczące korzystania z edytora vi -
Sr.No. | Polecenie i opis |
---|---|
1 | vi filename Tworzy nowy plik, jeśli jeszcze nie istnieje, w przeciwnym razie otwiera istniejący plik. |
2 | vi -R filename Otwiera istniejący plik w trybie tylko do odczytu. |
3 | view filename Otwiera istniejący plik w trybie tylko do odczytu. |
Poniżej znajduje się przykład tworzenia nowego pliku testfile jeśli już nie istnieje w bieżącym katalogu roboczym -
$vi testfile
Powyższe polecenie wygeneruje następujące dane wyjściowe -
|
~
~
~
~
~
~
~
~
~
~
~
~
"testfile" [New File]
Zauważysz tilde(~) w każdym wierszu za kursorem. Tylda reprezentuje nieużywaną linię. Jeśli linia nie zaczyna się od tyldy i wydaje się być pusta, oznacza to, że występuje spacja, tabulator, nowa linia lub inny niewidoczny znak.
Masz teraz jeden otwarty plik, nad którym możesz rozpocząć pracę. Zanim przejdziemy dalej, zrozumiemy kilka ważnych pojęć.
Tryby działania
Podczas pracy z edytorem vi zwykle napotykamy dwa następujące tryby -
Command mode- Ten tryb umożliwia wykonywanie zadań administracyjnych, takich jak zapisywanie plików, wykonywanie poleceń, przesuwanie kursora, wycinanie (szarpanie) i wklejanie linii lub słów, a także znajdowanie i zastępowanie. W tym trybie cokolwiek wpiszesz jest interpretowane jako polecenie.
Insert mode- Ten tryb umożliwia wstawianie tekstu do pliku. Wszystko, co wpisano w tym trybie, jest interpretowane jako dane wejściowe i umieszczane w pliku.
vi zawsze zaczyna się w command mode. Aby wprowadzić tekst, musisz być w trybie wstawiania, w którym po prostu piszi. Aby wyjść z trybu wstawiania, naciśnijEsc klawisz, który przeniesie Cię z powrotem do trybu poleceń.
Hint- Jeśli nie jesteś pewien, w jakim trybie jesteś, naciśnij dwukrotnie klawisz Esc; spowoduje to przejście do trybu poleceń. Otwierasz plik za pomocą edytora vi. Zacznij od wpisania kilku znaków, a następnie przejdź do trybu poleceń, aby zrozumieć różnicę.
Wyjście z vi
Polecenie wyjścia z vi to :q. W trybie poleceń wpisz dwukropek i „q”, a następnie return. Jeśli plik został w jakikolwiek sposób zmodyfikowany, edytor ostrzeże Cię o tym i nie pozwoli Ci zakończyć. Aby zignorować ten komunikat, polecenie wyjścia z vi bez zapisywania to:q!. Pozwala to wyjść z vi bez zapisywania zmian.
Polecenie do zapisania zawartości edytora to :w. Możesz połączyć powyższe polecenie z poleceniem quit lub użyć:wq i wróć.
Najłatwiejszy sposób save your changes and exit vijest z poleceniem ZZ. Gdy jesteś w trybie poleceń, wpiszZZ. PlikZZ polecenie działa w taki sam sposób jak :wq Komenda.
Jeśli chcesz określić / podać jakąś konkretną nazwę pliku, możesz to zrobić, określając ją po rozszerzeniu :w. Na przykład, jeśli chcesz zapisać plik, nad którym pracujesz, pod inną nazwą o nazwiefilename2, wpiszesz :w filename2 i wróć.
Poruszanie się w pliku
Aby poruszać się po pliku bez wpływu na tekst, musisz być w trybie poleceń (naciśnij dwukrotnie klawisz Esc). W poniższej tabeli wymieniono kilka poleceń, których możesz użyć do poruszania się po jednym znaku na raz -
Sr.No. | Polecenie i opis |
---|---|
1 | k Przesuwa kursor o jedną linię w górę |
2 | j Przesuwa kursor o jedną linię w dół |
3 | h Przesuwa kursor o jedną pozycję w lewo |
4 | l Przesuwa kursor o jedną pozycję w prawo |
Aby poruszać się w pliku, należy wziąć pod uwagę następujące punkty -
vi rozróżnia wielkość liter. Podczas korzystania z poleceń należy zwrócić uwagę na wielkie litery.
Większość poleceń w vi może być poprzedzona liczbą przypadków, w których ma wystąpić akcja. Na przykład,2j przesuwa kursor o dwie linie w dół do położenia kursora.
Istnieje wiele innych sposobów poruszania się w pliku w vi. Pamiętaj, że musisz być w trybie poleceń (press Esc twice). W poniższej tabeli wymieniono kilka poleceń do poruszania się po pliku -
Sr.No. | Polecenie i opis |
---|---|
1 | 0 or | Umieszcza kursor na początku wiersza |
2 | $ Umieszcza kursor na końcu linii |
3 | w Umieszcza kursor na następnym wyrazie |
4 | b Umieszcza kursor na poprzednim wyrazie |
5 | ( Umieszcza kursor na początku bieżącego zdania |
6 | ) Umieszcza kursor na początku następnego zdania |
7 | E Przechodzi na koniec pustego rozdzielonego słowa |
8 | { Przenosi akapit z powrotem |
9 | } Przenosi akapit do przodu |
10 | [[ Przenosi sekcję z powrotem |
11 | ]] Przenosi sekcję do przodu |
12 | n| Przechodzi do kolumny n w bieżącej linii |
13 | 1G Przechodzi do pierwszej linii pliku |
14 | G Przechodzi do ostatniej linii pliku |
15 | nG Przechodzi do nth wiersz pliku |
16 | :n Przechodzi do nth wiersz pliku |
17 | fc Przechodzi do przodu do c |
18 | Fc Wraca do c |
19 | H Przechodzi na górę ekranu |
20 | nH Przechodzi do nth linia od góry ekranu |
21 | M Przechodzi na środek ekranu |
22 | L Przejdź na dół ekranu |
23 | nL Przechodzi do nth wiersz od dołu ekranu |
24 | :x Dwukropek, po którym następuje liczba, ustawiłby kursor na numerze wiersza reprezentowanym przez x |
Polecenia sterujące
Następujące polecenia mogą być używane z klawiszem Control do wykonywania funkcji podanych w poniższej tabeli -
Sr.No. | Polecenie i opis |
---|---|
1 | CTRL+d Przejście do przodu o 1/2 ekranu |
2 | CTRL+f Przechodzi do przodu o jeden pełny ekran |
3 | CTRL+u Przechodzi do tyłu o 1/2 ekranu |
4 | CTRL+b Przechodzi wstecz o jeden pełny ekran |
5 | CTRL+e Przesuwa ekran o jedną linię w górę |
6 | CTRL+y Przesuwa ekran o jedną linię w dół |
7 | CTRL+u Przesuwa ekran w górę o 1/2 strony |
8 | CTRL+d Przesuwa ekran o 1/2 strony w dół |
9 | CTRL+b Przenosi ekran o jedną stronę w górę |
10 | CTRL+f Przenosi ekran o jedną stronę w dół |
11 | CTRL+I Odświeża ekran |
Edycja plików
Aby edytować plik, musisz być w trybie wstawiania. Istnieje wiele sposobów przejścia do trybu wstawiania z trybu poleceń -
Sr.No. | Polecenie i opis |
---|---|
1 | i Wstawia tekst przed bieżącą lokalizacją kursora |
2 | I Wstawia tekst na początku bieżącego wiersza |
3 | a Wstawia tekst po bieżącej lokalizacji kursora |
4 | A Wstawia tekst na końcu bieżącego wiersza |
5 | o Tworzy nowy wiersz do wprowadzania tekstu poniżej położenia kursora |
6 | O Tworzy nową linię do wprowadzania tekstu powyżej położenia kursora |
Usuwanie znaków
Oto lista ważnych poleceń, których można użyć do usunięcia znaków i linii w otwartym pliku -
Sr.No. | Polecenie i opis |
---|---|
1 | x Usuwa znak pod pozycją kursora |
2 | X Usuwa znak przed położeniem kursora |
3 | dw Usuwa od bieżącej lokalizacji kursora do następnego słowa |
4 | d^ Usuwa od aktualnej pozycji kursora do początku wiersza |
5 | d$ Usuwa od aktualnej pozycji kursora do końca wiersza |
6 | D Usuwa od pozycji kursora do końca bieżącego wiersza |
7 | dd Usuwa linię, na której znajduje się kursor |
Jak wspomniano powyżej, większość poleceń w vi może być poprzedzona liczbą przypadków, w których ma nastąpić działanie. Na przykład,2x usuwa dwa znaki pod położeniem kursora i 2dd usuwa dwie linie, w których znajduje się kursor.
Zaleca się przećwiczenie poleceń, zanim przejdziemy dalej.
Zmień polecenia
Masz również możliwość zmiany znaków, słów lub linii w vi bez ich usuwania. Oto odpowiednie polecenia -
Sr.No. | Polecenie i opis |
---|---|
1 | cc Usuwa zawartość wiersza, pozostawiając cię w trybie wstawiania. |
2 | cw Zmienia słowo, na którym znajduje się kursor, z kursora na małe litery w koniec słowa. |
3 | r Zastępuje znak pod kursorem. vi powraca do trybu poleceń po wprowadzeniu zamiany. |
4 | R Zastępuje wiele znaków zaczynających się od znaku aktualnie znajdującego się pod kursorem. Musisz użyćEsc aby zatrzymać nadpisywanie. |
5 | s Zastępuje obecny znak wpisanym znakiem. Następnie pozostajesz w trybie wstawiania. |
6 | S Usuwa wiersz, na którym znajduje się kursor, i zastępuje go nowym tekstem. Po wprowadzeniu nowego tekstu vi pozostaje w trybie wstawiania. |
Polecenia kopiowania i wklejania
Możesz skopiować wiersze lub słowa z jednego miejsca, a następnie wkleić je w innym miejscu za pomocą następujących poleceń -
Sr.No. | Polecenie i opis |
---|---|
1 | yy Kopiuje bieżącą linię. |
2 | yw Kopiuje bieżące słowo od znaku, na którym znajduje się mały kursor w, aż do końca słowa. |
3 | p Umieszcza skopiowany tekst za kursorem. |
4 | P Umieszcza szarpany tekst przed kursorem. |
Zaawansowane polecenia
Istnieje kilka zaawansowanych poleceń, które upraszczają codzienną edycję i pozwalają na bardziej wydajne korzystanie z vi -
Sr.No. | Polecenie i opis |
---|---|
1 | J Łączy bieżącą linię z następną. Liczba poleceń j łączy wiele linii. |
2 | << Przesuwa bieżącą linię w lewo o jedną szerokość przesunięcia. |
3 | >> Przesuwa bieżącą linię w prawo o jedną szerokość przesunięcia. |
4 | ~ Zmienia wielkość liter w znaku pod kursorem. |
5 | ^G Naciśnij jednocześnie klawisze Ctrl i G, aby wyświetlić bieżącą nazwę pliku i stan. |
6 | U Przywraca bieżącą linię do stanu, w jakim znajdowała się przed wejściem kursora do linii. |
7 | u Pomaga to cofnąć ostatnią zmianę dokonaną w pliku. Ponowne wpisanie „u” spowoduje ponowne wprowadzenie zmiany. |
8 | J Łączy bieżącą linię z następną. Licznik łączy tyle wierszy. |
9 | :f Wyświetla bieżącą pozycję w pliku w% i nazwę pliku, całkowitą liczbę plików. |
10 | :f filename Zmienia nazwę bieżącego pliku na nazwę pliku. |
11 | :w filename Zapisuje do pliku nazwa_pliku. |
12 | :e filename Otwiera inny plik z nazwą pliku. |
13 | :cd dirname Zmienia bieżący katalog roboczy na dirname. |
14 | :e # Przełącza między dwoma otwartymi plikami. |
15 | :n Jeśli otwierasz wiele plików za pomocą vi, użyj :n aby przejść do następnego pliku w serii. |
16 | :p Jeśli otwierasz wiele plików za pomocą vi, użyj :p aby przejść do poprzedniego pliku w serii. |
17 | :N Jeśli otwierasz wiele plików za pomocą vi, użyj :N aby przejść do poprzedniego pliku w serii. |
18 | :r file Czyta plik i wstawia go po bieżącej linii. |
19 | :nr file Czyta plik i wstawia go po linii n. |
Wyszukiwanie słów i znaków
Edytor vi ma dwa rodzaje wyszukiwań: string i character. W przypadku wyszukiwania ciągów/ i ?używane są polecenia. Po uruchomieniu tych poleceń, właśnie wpisane polecenie zostanie wyświetlone w ostatnim wierszu ekranu, w którym wpisuje się szukany ciąg.
Te dwa polecenia różnią się tylko kierunkiem, w którym odbywa się wyszukiwanie -
Plik / polecenie wyszukuje do przodu (w dół) w pliku.
Plik ? polecenie wyszukuje wstecz (w górę) w pliku.
Plik n i Npolecenia powtarzają poprzednie polecenie wyszukiwania odpowiednio w tym samym lub przeciwnym kierunku. Niektóre znaki mają specjalne znaczenie. Znaki te muszą być poprzedzone odwrotnym ukośnikiem (\) jako część wyrażenia wyszukiwania.
Sr.No. | Opis postaci |
---|---|
1 | ^ Wyszukuje na początku wiersza (użyj na początku wyrażenia wyszukiwania). |
2 | . Dopasowuje pojedynczy znak. |
3 | * Dopasowuje zero lub więcej poprzedniego znaku. |
4 | $ Koniec wiersza (użyj na końcu wyrażenia wyszukiwania). |
5 | [ Rozpoczyna zestaw pasujących lub niepasujących wyrażeń. |
6 | < Jest to umieszczane w wyrażeniu poprzedzonym odwrotnym ukośnikiem w celu znalezienia końca lub początku słowa. |
7 | > Pomaga to zobaczyć „<'opis postaci powyżej. |
Wyszukiwanie znaków przeszukuje jeden wiersz w celu znalezienia znaku wprowadzonego po poleceniu. Plikf i F polecenia wyszukują tylko znak w bieżącej linii. f wyszukuje do przodu i F wyszukuje wstecz, a kursor przesuwa się do pozycji znalezionego znaku.
Plik t i T polecenia wyszukują tylko znak w bieżącym wierszu, ale szukają t, kursor przesunie się na pozycję przed znakiem i T przeszukuje linię wstecz do pozycji po znaku.
Ustaw polecenia
Możesz zmienić wygląd i działanie swojego ekranu vi, korzystając z poniższych wskazówek :setpolecenia. Gdy jesteś w trybie poleceń, wpisz:set po którym następuje dowolne z następujących poleceń.
Sr.No. | Polecenie i opis |
---|---|
1 | :set ic Ignoruje przypadek podczas wyszukiwania |
2 | :set ai Ustawia wcięcie automatyczne |
3 | :set noai Cofa automatyczne wcięcie |
4 | :set nu Wyświetla wiersze z numerami wierszy po lewej stronie |
5 | :set sw Ustawia szerokość tabulatora oprogramowania. Na przykład możesz ustawić szerokość przesunięcia na 4 za pomocą tego polecenia -:set sw = 4 |
6 | :set ws Jeśli wrapscan jest ustawiony, a słowo nie zostanie znalezione na dole pliku, spróbuje wyszukać go na początku |
7 | :set wm Jeśli ta opcja ma wartość większą niż zero, edytor automatycznie „zawija słowa”. Na przykład, aby ustawić margines zawijania na dwa znaki, należy wpisać::set wm = 2 |
8 | :set ro Zmienia typ pliku na „tylko do odczytu” |
9 | :set term Wyświetla typ terminala |
10 | :set bf Odrzuca znaki sterujące z danych wejściowych |
Uruchamianie poleceń
Vi ma możliwość uruchamiania poleceń z poziomu edytora. Aby uruchomić polecenie, wystarczy przejść do trybu poleceń i wpisać:! Komenda.
Na przykład, jeśli chcesz sprawdzić, czy plik istnieje, zanim spróbujesz zapisać plik pod tą nazwą, możesz wpisać :! ls i zobaczysz wynik ls na ekranie.
Możesz nacisnąć dowolny klawisz (lub sekwencję ucieczki polecenia), aby powrócić do sesji vi.
Zastępowanie tekstu
Polecenie podstawienia (:s/) umożliwia szybkie zastępowanie słów lub grup słów w plikach. Poniżej znajduje się składnia zastępująca tekst -
:s/search/replace/g
Plik goznacza globalnie. Wynikiem tego polecenia jest zmiana wszystkich wystąpień w linii kursora.
Ważne uwagi
Poniższe punkty przyczynią się do Twojego sukcesu z vi -
Aby używać poleceń, musisz być w trybie poleceń. (Naciśnij klawisz Esc dwukrotnie w dowolnym momencie, aby upewnić się, że jesteś w trybie poleceń).
Musisz uważać na polecenia. W tych jest rozróżniana wielkość liter.
Aby wprowadzić tekst, musisz być w trybie wstawiania.