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.



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow