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.