Rozpoczęcie pracy z Vimem: Podstawy
Pamiętam pierwszy raz, kiedy zetknąłem się z Vimem. Byłem studentem uniwersytetu, a na komputerach w laboratorium wydziału informatyki zainstalowany był Ubuntu Linux. Chociaż miałem styczność z różnymi odmianami Linuksa (takimi jak RHEL) jeszcze przed studiami (Red Hat sprzedawał swoje płyty CD w Best Buy!), to był to pierwszy raz, kiedy musiałem regularnie używać systemu operacyjnego Linux, ponieważ wymagały tego moje zajęcia. Gdy tylko zacząłem używać Linuksa, jak wielu innych przede mną i po mnie, zacząłem czuć się jak „prawdziwy programista.”
1_xkcdcartoon.jpg
Real Programmers, by xkcd
Studenci mogli używać graficznego edytora tekstu, takiego jak Kate, który był domyślnie zainstalowany na komputerach laboratoryjnych. Dla studentów, którzy mogli używać powłoki, ale nie byli przyzwyczajeni do edytorów konsolowych, popularnym wyborem był Nano, który zapewniał dobre interaktywne menu i doświadczenie podobne do graficznego edytora tekstu Windows.
Czasami używałem Nano, ale słyszałem niesamowite rzeczy o Vi/Vim i Emacs i naprawdę chciałem ich spróbować (głównie dlatego, że wyglądały fajnie, a także byłem ciekawy, co było w nich takiego wspaniałego). Użycie Vima po raz pierwszy przeraziło mnie – nie chciałem niczego zepsuć! Ale kiedy już się w tym połapałem, wszystko stało się o wiele łatwiejsze i mogłem docenić potężne możliwości edytora. Jeśli chodzi o Emacsa, cóż, w pewnym sensie się poddałem, ale cieszę się, że zostałem przy Vimie.
W tym artykule przedstawię Vima (bazując na moim osobistym doświadczeniu) na tyle, abyś mógł się nim posługiwać jako edytorem w systemie Linux. Nie uczyni to z ciebie eksperta, ani nawet nie zarysuje powierzchni wielu potężnych możliwości Vima. Ale punkt wyjścia zawsze ma znaczenie, a ja chcę, aby początkowe doświadczenia były tak łatwe, jak to tylko możliwe, a resztę możesz odkrywać na własną rękę.
Krok 0: Otwórz okno konsoli
Przed wskoczeniem do Vima, musisz zrobić małe przygotowanie. Otwórz terminal konsoli w swoim systemie operacyjnym Linux. (Ponieważ Vim jest również dostępny na MacOS, użytkownicy Maca mogą również skorzystać z tych instrukcji.)
Gdy okno terminala jest już otwarte, wpisz polecenie ls, aby wyświetlić listę bieżących katalogów. Następnie wpisz mkdir Tutorial, aby utworzyć nowy katalog o nazwie Tutorial. Wejdź do tego katalogu wpisując cd Tutorial.
To tyle jeśli chodzi o przygotowanie. Teraz nadszedł czas, aby przejść do zabawnej części – rozpoczęcia używania Vima.
Krok 1: Utwórz i zamknij plik Vima bez zapisywania
Pamiętasz, kiedy powiedziałem, że bałem się używać Vima na początku? Cóż, przerażającą częścią było myślenie: „co jeśli zmienię istniejący plik i coś zepsuję?”. W końcu kilka zadań z informatyki wymagało ode mnie pracy nad istniejącymi plikami poprzez ich modyfikację. Chciałem wiedzieć: Jak mogę otworzyć i zamknąć plik bez zapisywania moich zmian?
Dobrą wiadomością jest to, że możesz użyć tego samego polecenia do utworzenia lub otwarcia pliku w Vimie: vim <FILE_NAME>, gdzie <FILE_NAME> reprezentuje docelową nazwę pliku, który chcesz utworzyć lub zmodyfikować. Utwórzmy plik o nazwie HelloWorld.java, wpisując vim HelloWorld.java.
Witaj, Vim! Teraz, tutaj jest bardzo ważna koncepcja w Vimie, być może najważniejsza do zapamiętania: Vim ma wiele trybów. Oto trzy, które musisz znać, aby zrobić podstawy Vima:
Tryb | Opis |
---|---|
Normalny | Domyślny; do nawigacji i prostej edycji |
Insert | Do jawnego wstawiania i modyfikowania tekstu |
Command Line | Do operacji takich jak zapisywanie, wychodzenie itp. |
Vim ma inne tryby, takie jak Visual, Select i Ex-Mode, ale tryby Normal, Insert i Command Line są dla nas wystarczające.
Jesteś teraz w trybie Normal. Jeśli masz tekst, możesz poruszać się po nim za pomocą klawiszy strzałek lub innych naciśnięć klawiszy nawigacyjnych (które poznasz później). Aby upewnić się, że jesteś w trybie normalnym, po prostu naciśnij klawisz Esc (Escape).
Porada: Esc przełącza do trybu normalnego. Nawet jeśli jesteś już w trybie normalnym, naciśnij Esc dla wprawy.
Teraz będzie ciekawie. Naciśnij : (klawisz dwukropka), a następnie q! (tzn. :q!). Twój ekran będzie wyglądał tak:
Naciskanie dwukropka w trybie normalnym przełącza Vima w tryb wiersza poleceń, a polecenie :q! kończy pracę edytora Vim bez zapisywania. Innymi słowy, porzucasz wszystkie zmiany. Możesz też użyć ZQ; wybierz, która opcja jest wygodniejsza.
Po naciśnięciu Enter nie powinieneś już być w Vimie. Powtórz to ćwiczenie kilka razy, tylko po to, aby się w nim połapać. Gdy już to zrobisz, przejdź do następnej sekcji, aby dowiedzieć się, jak wprowadzić zmiany w tym pliku.
Krok 2: Wprowadzanie i zapisywanie zmian w Vimie
Otwórz ponownie plik, wpisując vim HelloWorld.java i naciskając klawisz Enter. Tryb wstawiania to miejsce, w którym możesz wprowadzać zmiany w pliku. Najpierw naciśnij Esc, aby upewnić się, że jesteś w trybie normalnym, a następnie naciśnij i, aby przejść do trybu wstawiania. (Tak, to jest litera i.)
W dolnym lewym rogu powinieneś zobaczyć — INSERT –. Oznacza to, że jesteś w trybie Insert.
Wpisz jakiś kod Java. Możesz wpisać wszystko, co chcesz, ale tutaj jest przykład do naśladowania. Twój ekran będzie wyglądał tak:
public class HelloWorld {
public static void main(String args) {
}
}
Bardzo ładnie! Zauważ jak tekst jest podświetlony w kolorach podświetlenia składni Javy. Ponieważ rozpocząłeś pracę z plikiem w Javie, Vim wykryje kolor składni.
Zapisz plik. Naciśnij Esc, aby wyjść z trybu wstawiania i przejść do trybu wiersza poleceń. Wpisz : i za nim x! (tzn. dwukropek, a po nim x i !). Naciśnij Enter, aby zapisać plik. Możesz również wpisać wq, aby wykonać tę samą operację.
Teraz wiesz, jak wprowadzać tekst w trybie Wstawianie i zapisywać plik za pomocą :x! lub :wq.
Krok 3: Podstawowa nawigacja w Vimie
Mimo że zawsze możesz użyć przyjaznych przycisków strzałek w górę, w dół, w lewo i w prawo, aby poruszać się po pliku, byłoby to bardzo trudne w dużym pliku z prawie niezliczoną liczbą linii. Pomocna jest również możliwość skakania w obrębie linii. Chociaż Vim ma mnóstwo wspaniałych funkcji nawigacyjnych, pierwszą, którą chcę ci pokazać, jest to, jak przejść do konkretnej linii.
Naciśnij klawisz Esc, aby upewnić się, że jesteś w trybie normalnym, następnie wpisz :set number i naciśnij Enter .
Voila! Widzisz numery linii po lewej stronie każdej linii.
:2
Teraz przejdź do linii 3.
Wyobraź sobie jednak scenariusz, w którym masz do czynienia z plikiem, który ma 1000 linii i chcesz przejść na koniec pliku. Jak się tam dostać? Upewnij się, że jesteś w trybie normalnym, następnie wpisz :$ i naciśnij Enter.
Będziesz na ostatniej linii!
Teraz, gdy już wiesz, jak przeskakiwać między liniami, jako bonus, nauczmy się, jak przejść na koniec linii. Upewnij się, że jesteś w linii z tekstem, jak linia 3, i wpisz $.
Jesteś teraz na ostatnim znaku w linii. W tym przykładzie otwarty nawias klamrowy jest podświetlony, aby pokazać, dokąd przesunął się Twój kursor, a zamykający nawias klamrowy jest podświetlony, ponieważ jest to znak odpowiadający otwierającemu nawiasowi klamrowemu.
To tyle, jeśli chodzi o podstawową nawigację w Vimie. Poczekaj, nie opuszczaj pliku. Przejdźmy do podstawowej edycji w Vimie. Nie krępuj się jednak złapać filiżankę kawy lub herbaty.
Krok 4: Podstawowa edycja w Vimie
Gdy już wiesz jak poruszać się po pliku wskakując na wybraną linię, możesz użyć tej umiejętności do podstawowej edycji w Vimie. Przełącz się do trybu Insert. (Pamiętasz, jak to się robi, naciskając klawisz i?) Jasne, możesz edytować za pomocą klawiatury, usuwając lub wstawiając znaki, ale Vim oferuje znacznie szybsze sposoby edycji plików.
Przejdź do linii 3, gdzie znajduje się public static void main(String args) {. Szybko uderz w klawisz d dwa razy z rzędu. Tak, to jest dd. Jeśli udało Ci się to zrobić, zobaczysz taki oto ekran, na którym linia 3 zniknęła, a każda następna linia została przesunięta o jeden w górę (np. linia 4 stała się linią 3).
To jest polecenie delete. Nie bój się! Naciśnij u i zobaczysz, że usunięta linia została odzyskana. Whew. To jest polecenie cofnij.
Następna lekcja to nauka kopiowania i wklejania tekstu, ale najpierw musisz się nauczyć, jak zaznaczać tekst w Vimie. Naciśnij v i przesuń swoje przyciski strzałek w lewo i prawo, aby zaznaczyć i odznaczyć tekst. Ta funkcja jest również bardzo przydatna, gdy pokazujesz kod innym i chcesz zidentyfikować kod, który chcesz, aby zobaczyli.
Przejdź do linii 4, gdzie jest napisane System.out.println(„Hello, Opensource”);. Podświetl całą linię 4. Gotowe? OK, gdy linia 4 jest wciąż podświetlona, naciśnij y. Jest to tryb yank, który skopiuje tekst do schowka. Następnie utwórz nową linię pod spodem wpisując o. Zauważ, że to spowoduje przejście do trybu Wstawiania. Wyjdź z trybu Insert naciskając Esc, a następnie naciśnij p, co oznacza paste. Spowoduje to wklejenie skopiowanego tekstu z linii 3 do linii 4.
Jako ćwiczenie, powtórz te kroki, ale także zmodyfikuj tekst w nowo utworzonych liniach. Upewnij się również, że linie są dobrze wyrównane.
Podpowiedź: Musisz przełączać się tam i z powrotem między trybem Wstawiania a trybem Wiersza poleceń, aby wykonać to zadanie.
Jak skończysz, zapisz plik poleceniem x! To wszystko, jeśli chodzi o podstawową edycję w Vimie.
Krok 5: Podstawowe wyszukiwanie w Vimie
Wyobraź sobie, że szef twojego zespołu chce, abyś zmienił ciąg tekstowy w projekcie. Jak możesz to zrobić szybko? Możesz chcieć wyszukać linię używając pewnego słowa kluczowego.
Funkcja wyszukiwania w Vimie może być bardzo przydatna. Przechodzimy do trybu wiersza poleceń przez (1) naciśnięcie klawisza Esc, a następnie (2) naciśnięcie klawisza dwukropka :. Możemy wyszukać słowo kluczowe wpisując :/<SEARCH_KEYWORD>, gdzie <SEARCH_KEYWORD> to ciąg tekstowy, który chcemy znaleźć. Tutaj szukamy ciągu słów kluczowych „Hello”. Na poniższym obrazku brakuje dwukropka, ale jest on wymagany.
Jednakże słowo kluczowe może pojawić się więcej niż jeden raz, a to może nie być ten, który chcesz. Jak więc poruszać się, aby znaleźć następne dopasowanie? Po prostu naciśnij klawisz n, który oznacza następny. Upewnij się, że nie jesteś w trybie Insert, gdy to robisz!
Krok bonusowy: Użyj trybu dzielenia w Vimie
To całkiem sporo pokrywa wszystkie podstawy Vima. Ale jako bonus chcę ci pokazać fajną funkcję Vima, zwaną trybem dzielenia.
Wyjdź z HelloWorld.java i utwórz nowy plik. W oknie terminala wpisz vim GoodBye.java i naciśnij Enter, aby utworzyć nowy plik o nazwie GoodBye.java.
Wpisz dowolny tekst; ja zdecydowałem się wpisać „Goodbye”. Zapisz plik. (Pamiętaj, że możesz użyć :x! lub :wq w trybie Wiersza poleceń.)
W trybie Wiersza poleceń, wpisz :split HelloWorld.java, i zobacz co się stanie.
Wow! Spójrz na to! Polecenie split utworzyło poziomo podzielone okna z HelloWorld.java powyżej i GoodBye.java poniżej. Jak możesz przełączać się między oknami? Przytrzymaj Control (na komputerach Mac) lub CTRL (na komputerach PC), a następnie naciśnij ww (tzn. w dwa razy po kolei).
Jako ostatnie ćwiczenie, spróbuj edytować GoodBye.java tak, aby pasował do poniższego ekranu, kopiując i wklejając z HelloWorld.java.
Zapisz oba pliki i gotowe!
TIP 1: Jeśli chcesz ułożyć pliki pionowo, użyj polecenia :vsplit <FILE_NAME> (zamiast :split <FILE_NAME>, gdzie <FILE_NAME> to nazwa pliku, który chcesz otworzyć w trybie Split.
TIP 2: Możesz otworzyć więcej niż dwa pliki, wywołując tyle dodatkowych poleceń split lub vsplit, ile chcesz. Spróbuj i zobacz jak to wygląda.