Za każdym razem, gdy używam Vim’a, słyszę coś w stylu „ja go nie znoszę” i w dobie bogatych edytorów wizualnych, Vim faktycznie nie wydaje się zbyt przyjazny użytkownikom (a nawet bywa znienawidzony), ale ma rzesze swoich wiernych fanów. Sam mem „How to exit Vim?” żyje wiecznie, a to pytanie już całkiem poważnie ma 2.9 miliona(!) wyświetleń na StackOverflow.
Vim podstawy dla początkujących
Czym jest Vim?
Vi (od „Visual”) to edytor tekstu, który jest wczesną wersją wizualnego edytora tekstu powstałą w 1976. Vim, czyli powszechnie spotykany oznacza Vi rozbudowany (Vi iMproved ). Jest to ulepszona implementacja standardu Vi z wieloma dodatkami powstała prawie 20 lat później, bo w 1991. Swoich fanów ma głównie w społeczności Linuxowej.
Vi jest zainstalowane na (chyba) każdej dystrybucji Linuxa (Vim niekoniecznie, czasem trzeba go doinstalować).
Mnie przyjaznym nastwieniem zaraziła moja mentorka Rubyowa, która wszystko kodziła w Vim’ie 😉 Myślisz, że coś Twój edytor kodu ma, czego nie ma Vim? Wątpię. Sprawdź vimawesome.com. Są osoby, dla których Vim, to jedyny słuszny edytor (Vim Is The Perfect IDE – dev.to)
Odpowiadając od razu – nie, Vim nie jest moim głównym edytorem, natomiast nie dostaję zawału jak muszę z niego korzystać i o tym dzisiaj jest artykuł.
NIE BÓJ SIĘ VIM’a
Tryby Vi / Vim
Edytor Vi (jak i Vim) działa w dwóch trybach:
- Tryb poleceń (Command mode)
- Tryb wstawiania (Insert mode)
Ważne jest zwracanie uwagi, w którym z tych trybów się znajdujemy.
Zazwyczaj edytor Vi uruchamia się w trybie poleceń. W trybie poleceń wprowadzane są polecenia użytkownika dotyczące pliku (edycja, zapis, wyszukiwanie, przesunięcie linii, usuwanie czy kopiowanie itp) i zatwierdzamy je enterem.
By przejść do trybu wstawiania, wystarczy wpisać literę i
.
W trybie wstawiania dokonuje się edycji pliku czyli pisania tekstu. Tutaj tekst jest „wstawiany” do pliku.
Aby powrócić z trybu wstawiania do trybu poleceń, użyj klawisza ESC
.
Jeśli nie wiesz, w jakim trybie się znajdujesz, naciśnij dwukrotnie klawisz ESC
– spowoduje to przejście do trybu poleceń.
Uruchomienie edytora Vi/Vim
Aby uruchomić edytor Vi lub Vim otwórz terminal i wpisz komendę
vi <filename>
– by otworzyć edytor Vi
vim <filename>
– by otworzyć edytor Vim
Proste?
Po wskazaniu istniejącego pliku, zostanie on otwarty, a podając nową nazwę utworzony zostanie nowy plik.
Polecenia edycji Vi / Vim
Aby wykonywać polecenia edycji w edytorze, musisz znajdować się w trybie poleceń (proste? – patrz wyżej).
Kilka rad przed:
- Warto wiedzieć, że Vi jak i Vim rozróżniają wielkość liter, więc zwracaj na to uwagę.
- Na początku ostrożność i czujność – polecenia są zazwyczaj 1-, 2-literowe, literówka może kosztować nas niespodziewaną zmianę.
Poniżej podstawowe polecenia, które można wykorzystać w edytorze Vi/Vim’e.
i
– Tryb wstawiania: wpisuje tekst przed kursorem
a
– Tryb wstawiania: wpisuje tekst po kursorze
A
– Tryb wstawiania: wpisuje tekst na końcu linii
o
– Tryb wstawiania: od nowej linii
ESC
– Kończy tryb wstawiania
u
– Cofnij ostatnią zmianę
U
– Cofnij wszystkie zmiany w linii
D
– Usuwa zawartość linii po kursorze (od obecnej pozycji do końca)
dd
– Usuwa całą zawartość linii, na której jest kursor
3dd
– Usuwa 3 linie
dw
– Usuwa słowo
4dw
– Usuwa 4 słowa
x
– Usuwa znak pod kursorem (w jego aktualnej pozycji)
R
– Zastępuje (nadpisuje) znaki od pozycji kursora (do momentu naciśnięcia klawisza ESC
)
r
– Zastępuje znak
s
– Zastępuje 1 znak pod kursorem i dalej kontynuuje wprowadzanie tekstu „normalnie”
S
/ cc
– Zastępuje całą linię i rozpoczyna wprowadzanie tekstu na początku linii
cw
– zmień wyraz od miejsca, w którym stoi kursor (jeśli chcesz zastąpić całe słowo, musi stać na początku słowa)
~
– Odwaraca rozmiar znaku (z małych na wielkie i z wielkich na małe litery
Polecenia nawigacji
Oczywiście, po Vim’ie można poruszać się po prostu strzałkami, ale jest jeszcze jedna opcja kjlh.
Poniżej znajdują się polecenia używane do nawigacji w pliku (musisz oczywiście znajdować się w trybie poleceń).
k
– w górę
j
– w dół
l
– prawo
h
– lewo
Szybkie skakanie po liniach?
Możecie wykonać np. 2j
aby poruszyć się 2 linie w dół, albo 4k
, aby przesunąć się 4 linie w górę.
Nawigacja po stronie
Strona rozumiana jako widok wysokość okna terminala. Poniższe polecenia przesuwają widok strony w górę i w dół na podstawie aktualnego rozmiaru ekranu.
ctrl + b
– strona wstecz lub „w górę”
ctrl + f
– strona do przodu lub „w dół”
ctrl + u
– przesuwa stronę o ½ rozmiaru w górę
ctrl + d
– przesuwa stronę o ½ rozmiaru w dół
Całkiem przydatne, gdy czytacie coś i potrzebujecie „scrollować” czytaną stronę pliku.
Polecenia zapisu i wyjścia z pliku
To czas na wyjście i zapis (znowu mówimy o poleceniach, więc trzeba być w trybie poleceń – tak tylko przypominam 😏 )
Shift+zz
– zapis i wyjście z pliku
:w
– zapis bez wyjścia z pliku
:q
– wyjście z pliku bez zapisu
:wq
– zapis i wyjście z pliku (tego używam, chociaż wiem, że shift + zz jest szybsze)
Nauka Vim’a interaktywnie
Gry, które pomogą wam nauczyć się poleceń vim-owych w przyjazny sposób.
- vim-adventures.com – zabawna gra, gdzie sterowanie odbywa się poleceniami Vi /Vim
- vimsnake.com – gra w snake, sterujemy za pomocą komend Vi/ Vim
Strony z ćwiczeniami w przeglądarce, które mają za zadanie utrwalić i rozszerzyć znajomość komend Vim’a a także nauczyć nas szybszego jego używania.
Mam nadzieję, że po tym wprowadzeniu edytory Vi i Vim będą dla was przyjaźniejsze.
Niedawno zacząłem się uczyć sprawniej obsługiwać ten edytor. Vim kiedyś był lekkim edytorem, ale dzisiaj jest ekstremalnie szybki patrząc na dzisiejsze standardy 😀
W artykule jest mały błąd. Oprócz trybu command i insert mamy jeszcze tryb normal, który jest trybem domyślnym po naciśnięciu klawisza ESC. Oczywiście jest ich jeszcze więcej, np. visual, visual (insert), v-line itp. ale te trzy pierwsze są najbardziej kluczowe.
Watro również wspomnieć o unowocześnionej wersji edytora czyli neovim oraz o configu NvChad, który zamienia go w wypasiony edytor kodu z funkcjami zbliżonymi do VSCode.
Vim/Neovim to samo dobro 😉
Cześć, vim jest super, korzystam z niego na co dzień, dzięki za linki 😀
Hej, super materiały zebrane w jednym miejscu. Dzięki 😉
😡 – zapis i wyjście