vim
Polecenia w trybie normalnym (edycja)
Szukaj…
Wprowadzenie - szybka uwaga na temat trybu normalnego
W trybie normalnym polecenia można wprowadzać za pomocą bezpośrednich kombinacji klawiszy (na przykład wpisując u, aby cofnąć ostatnią zmianę). Polecenia te często mają odpowiedniki w trybie ex ', dostęp wpisując Colon, który rozłącza się bufor pojedynczej linii w dolnej części okna vim.
W trybie „ex” po wpisaniu dwukropka wpisujesz nazwę polecenia lub jego skrót, a następnie Enter, aby wykonać polecenie. Tak więc : undo
Enter wykonuje to samo, co bezpośrednie pisanie u w trybie normalnym.
Możesz zobaczyć, że bezpośrednie polecenia będą często szybsze (po nauczeniu się) niż polecenia „ex” w celu prostej edycji, ale dla kompletności, o ile to możliwe w poniższej dokumentacji, jeśli oba są dostępne do użycia, oba zostaną wyświetlone.
Większość tych poleceń można również poprzedzić zliczaniem , poprzedzając lub przerywając liczbę - wpisując 3dd w trybie normalnym, na przykład, usuwa trzy linie (zaczynając od bieżącej pozycji kursora).
Podstawowe cofanie i ponawianie
Cofnij
Komenda | : | Opis |
---|---|---|
u | u , undo | Cofnij ostatnią zmianę |
5u | Cofnij pięć ostatnich zmian (użyj dowolnej liczby) |
Należy pamiętać, że w Vimie „ostatnia zmiana” różni się w zależności od trybu, w którym się znajdujesz. Jeśli wejdziesz do trybu wstawiania ( i ) i napiszesz cały akapit przed powrotem do trybu normalnego ( Esc ), cały ten akapit jest uważany za ostatnią zmianę.
Przerobić
Komenda | : | Opis |
---|---|---|
Ctrl-R | red , redo | Ponów ostatnią cofniętą zmianę |
2Ctrl-R | Ponów dwie ostatnie cofnięte zmiany (użyj dowolnej liczby) |
Jest jeszcze jeden sposób cofania i ponawiania zmian w Vimie, który jest obsługiwany nieco inaczej. Kiedy cofasz zmianę za pomocą u , przechodzisz z powrotem do węzłów w „drzewie” twoich zmian, a naciśnięcie Ctrl-R powoduje powrót do tych węzłów w kolejności. (Drzewo cofania jest osobnym tematem i jest zbyt złożone, aby je tutaj omawiać).
Możesz także użyć litery U (to znaczy wielkiej litery), aby usunąć wszystkie najnowsze zmiany w jednym wierszu (wierszu, w którym wprowadzono ostatnie zmiany). To nie przechodzi przez węzły drzewa w taki sam sposób jak u . Korzystanie U rzeczywiście liczy się jako samej zmiany - inny węzeł na drzewie do przodu - tak, że jeśli Naciśnij u po raz drugi, zaraz po pierwszym będzie działać jako polecenie Redo.
Każdy ma swoje zastosowania, ale u / : undo
powinno obejmować najprostsze przypadki.
Powtórz ostatnią zmianę
Polecenie Powtórz, wykonane za pomocą przycisku kropki lub kropki ( . ), Jest bardziej przydatne niż się wydaje. Gdy się tego nauczysz, często go używasz.
Komenda | : | Opis |
---|---|---|
. | Powtórz ostatnią zmianę | |
10 | Powtórz ostatnią zmianę 10 razy |
Tak więc, dla bardzo prostego przykładu, jeśli wprowadzasz zmiany do wiersza 1, wpisując i I
Esc, z następującym wynikiem:
1 I made a mistake
2 made a mistake
3 made a mistake
Kursor znajdzie się w pozycji 1 wiersza 1, a wszystko, co musisz zrobić, aby naprawić kolejne dwie linie, to naciśnij j. dwa razy - to znaczy j, aby przejść w dół linii i . powtórzyć ostatnią zmianę, którą było dodanie I
Nie trzeba dwukrotnie przeskakiwać z powrotem do trybu wstawiania, aby naprawić te linie.
Staje się znacznie potężniejszy, gdy jest używany do powtarzania makr .
Kopiuj, wytnij i wklej
W Vimie operacje te są obsługiwane inaczej niż w prawie każdym innym nowoczesnym edytorze lub edytorze tekstu ( Ctrl-C , Ctrl-X , Ctrl-V ). Aby zrozumieć, musisz trochę wiedzieć o rejestrach i wnioskach.
Uwaga: ta sekcja nie obejmuje kopiowania i wycinania w trybie wizualnym ani szarpania zakresu, ponieważ są one poza zakresem zarówno trybu normalnego, jak i podstawowej edycji.
Rejestry
Vim korzysta z koncepcji rejestrów do obsługi przesuwanego tekstu w samym programie. Windows ma w tym celu jeden schowek, który jest analogiczny do jednego rejestru w Vimie. Podczas kopiowania, wycinania i wklejania w Vimie istnieją sposoby na użycie podobnie prostego przepływu pracy edycji (w którym nie musisz myśleć o rejestrach), ale są też o wiele bardziej złożone możliwości.
Rejestr jest ukierunkowany na wejście / wyjście polecenia, poprzedzając je znakiem „ i małą literą”.
Ruchy
Ruch w Vimie to dowolne polecenie, które przesuwa pozycję kursora w inne miejsce. Podczas kopiowania, wycinania i wklejania w trybie normalnym możliwości zaznaczania tekstu do ruchu są ograniczone tylko przez Twoją znajomość ruchów. Kilka zostanie zilustrowanych poniżej.
Kopiowanie i wycinanie
Podstawowe polecenia, na których są kopiowane i wycinane operacje, to y („yank”, dla kopiowania) id („usuń”, dla wycinania). Zobaczysz podobieństwa w poniższej tabeli.
Komenda | : | Opis |
---|---|---|
y {motion} | Skopiuj (wskazany przez ruch) tekst do rejestru domyślnego | |
tak | Skopiuj bieżącą linię do rejestru domyślnego, w linii | |
Y | Skopiuj bieżący wiersz do rejestru domyślnego (synonim yy ) | |
„ayiw | Skopiuj słowo, na którym znajduje się kursor, do rejestru „a” | |
20 "byy | Skopiuj dwadzieścia linii, zaczynając od kursora, do rejestru „b” | |
d {ruch} | Wytnij („usuń”) tekst wskazany przez ruch do rejestru domyślnego | |
dd | Wytnij bieżącą linię do rejestru domyślnego, wzdłuż linii | |
re | Wytnij od kursora do końca linii do rejestru domyślnego (NIE jest to synonim dd ) | |
„adiw | Wytnij słowo, na którym znajduje się kursor, aby zarejestrować „a” | |
20 "bdd | Wytnij dwadzieścia linii, zaczynając od kursora, do rejestru „b” |
Uwaga: gdy coś jest kopiowane lub wycinane w linii , zachowanie wklejania pokazane poniżej spowoduje umieszczenie tekstu przed lub po bieżącym wierszu (zamiast kursora). Poniższe przykłady wyjaśniają.
Wklejanie
Istnieje kilka sposobów wklejenia w Vimie, w zależności od tego, co próbujesz osiągnąć.
Komenda | : | Opis |
---|---|---|
p | Wklej wszystko, co znajduje się w rejestrze domyślnym, za kursorem | |
P. | Wklej wszystko, co znajduje się w rejestrze domyślnym przed kursorem | |
„ap | Wklej zawartość rejestru „a” za kursorem | |
„cP | Wklej zawartość rejestru „c” przed kursorem |
Jak więc wykonać naprawdę proste cięcie i wklejanie?
Jeśli mam następujący tekst:
1 This line should be second
2 This line should be first
Mogę wykonać najprostsze wycinanie i wklejanie, umieszczając kursor gdzieś w linii 1 i pisząc ddp . Oto wyniki:
1 This line should be first
2 This line should be second
Co się stało? dd „Wycina” pierwszą linię (linię) do rejestru domyślnego - który będzie zawierał tylko jedną rzecz na raz, jak schowek Windows - i p wkleja linię po bieżącej, która właśnie zmieniła się z powodu polecenia dd .
Oto nie dość prosty przykład. Muszę poruszyć kilka słów. (Jest to wymyślone i niepotrzebne, ale możesz zastosować tę zasadę do większych fragmentów kodu).
1 These words order out are of
Mogę powtórzyć w, aby dostać się do „o” z przodu „zamówienia” (lub b, jeśli po prostu to wpisałem i zrozumiałem swój błąd).
Następnie „adaw, aby umieścić„ zamówienie ”w rejestrze„ a ”.
Następnie w, aby dostać się do „a” w „are”.
Następnie wpisałbym „bdaw, aby umieścić” są ”w rejestrze„ b ”. Teraz mam to wyświetlone:
1 These words out of
Żeby było jasne, teraz „kolejność” jest w rejestrze „a”, a „są” w rejestrze „b”, podobnie jak dwa osobne schowki.
Aby poprawnie ułożyć słowa, piszę b, aby dostać się do „o” w „out”, a następnie „bP to put” są „z rejestru” b ”przed„ out ”:
1 These words are out of
Teraz wpisuję A, aby dostać się do końca linii, a następnie Space Esc (zakładając, że po „z” nie ma spacji) i „ap”, aby umieścić „porządek” tam, gdzie należy.
1 These words are out of order
Ukończenie
Uzupełniania można użyć do dopasowania słów użytych w dokumencie. Podczas wpisywania słowa Ctrl p lub Ctrl n będą pasować do poprzednich lub następnych podobnych słów w dokumencie.
Można to nawet połączyć z trybem Ctrl-X , aby uzupełnić całe linie. Na przykład wpisz coś takiego:
This is an example sentence.
następnie przejdź do następnego wiersza i zacznij pisać to samo zdanie:
Thi
a następnie naciśnij Ctrl p, co spowoduje:
This
Teraz nadal w trybie wstawiania, naciśnij Ctrl x Ctrl p, a następnie następne słowo zostanie uzupełnione, co spowoduje:
This is
Kontynuuj naciskanie klawiszy Ctrl x Ctrl p, aż cała linia zostanie zakończona.
Jeśli wiesz, że chcesz wypełnić cały wiersz, wykonaj następujące czynności:
This is an example sentence.
następnie w następnym wierszu wpisz:
Thi
i naciśnij x Ctrl l, aby zakończyć linię.
Jeśli zakończeniem jest nazwa pliku Ctrl x Ctrl f, można użyć do uzupełnienia tego katalogu. Rodzaj:
~/Deskt
następnie naciśnij Ctrl x Ctrl f i:
~/Desktop
zostanie ukończony (jeśli w tej lokalizacji). Ctrl x Ctrl f może być następnie wielokrotnie używany do wyświetlania listy plików na pulpicie.