Czym są rejestry Vima

Czym Sa Rejestry Vima



Rejestry Vima to bloki pamięci używane do przechowywania wyrwanego, usuniętego tekstu i operacji. Dostęp do tych rejestrów można uzyskać za pomocą nazw znaczników, które mogą być liczbą, literą lub symbolem.

Jeśli używasz Vima, musisz używać rejestrów Vima. Za każdym razem, gdy kopiujesz/usuwasz tekst lub wykonujesz polecenie, Vim przechowuje te informacje w rejestrach. Kiedy to wkleisz, Vim pobierze dane z rejestru i wciągnie je do bufora. Innymi słowy, rejestry Vima działają jak schowek do przechowywania tekstu i historii poleceń.

Vim ma w sumie 10 różnych typów rejestrów, z których każdy służy innemu celowi. W tym samouczku omówię rejestry Vima, ich typy i zastosowanie.







Notatka : W tym samouczku wykonuję polecenia w systemie macOS. Vim jest aplikacją wieloplatformową, dlatego polecenia wymienione w tym przewodniku będą miały zastosowanie do wszystkich wersji Vima, niezależnie od systemu operacyjnego.



Operatory rejestru Vima

Rejestry w Vimie można wykorzystać za pomocą operacji takich jak kopiowanie, usuwanie lub zmiana. Każda operacja ma określone operatory, np. do przeciągnięcia tekstu używany jest operator y, natomiast do usuwania tekstu używany jest operator d. Lista powszechnie stosowanych operatorów znajduje się poniżej:

yy Szarpie (kopiuje) linię
dd Usuwa linię
cc Usuwa linię i włącza tryb WSTAWIANIA
S Usuwa znak i uruchamia tryb INSERT w celu zastąpienia
X Usuwa znak pod kursorem
q makro; przechowuje zestaw poleceń w określonym rejestrze

Aby wydrukować zapisany tekst, P Lub P stosowane są operatory:

P Umieść (wklej) tekst za kursorem
P Umieść tekst przed kursorem

Te polecenia również uwzględniają liczbę. Na przykład, aby skopiować 10 linii, użyj metody 10yy polecenie, podobnie jak wklejenie 10 kopii szarpanej linii 22:00 .

Rejestry notowań

Aby wyświetlić listę wszystkich rejestrów, użyj opcji :rejestr Lub :rej polecenie i aby wyświetlić listę konkretnego rejestru, użyj polecenia :rej, gdzie to nazwa rejestru (np. 0-9, a-z).

W ten sam sposób, aby wyświetlić zawartość wielu rejestrów, użyj metody :reg „ Komenda.

Na liście rejestrów zobaczysz trzy kolumny, Nazwa, typ i zawartość . Typ oznacza tutaj typ zawartości, a nie typ rejestru. Trzy typy zawartość można modyfikować za pomocą rejestrów.

  • l : Liniowo
  • C : Charakterowo
  • B : Blokowo

Na przykład, jeśli treść jest kopiowana przy użyciu operacji liniowej (yy) wtedy będzie to typ zawartości l , jeśli chodzi o charakter (Tak) wtedy typ będzie C , i jeśli treść jest kopiowana blokowo (ctrl+v i y) wtedy typ zostanie wyświetlony jako B .

Praca z rejestrami Vima

Rejestry Vima mogą być używane do przechowywania treści za pomocą operatorów yank, Delete i Change. Dostęp do przechowywanej zawartości można uzyskać za pomocą operatorów put.

Zapisywanie tekstu do rejestru
Kiedy naciśniesz yy klawisz, aby skopiować linię, zostanie ona zapisana w rejestrze domyślnym zwanym rejestrem bez nazwy („”) . Aby zapisać skopiowaną linię w określonym rejestrze, użyj cudzysłowu („) po którym następuje nazwa rejestru i operator.

Na przykład, aby skopiować linię do nazwy rejestru z używać ' zy . Podobnie, jeśli wybrałeś wiele linii w trybie VISUAL, użyj „ zy do przechowywania linii w rejestrze z.

Dostęp do Rejestru
Aby uzyskać dostęp do rejestru Vima, wpisz quote („) symbol jest używany z nazwą rejestru i p/P operator.

str

Na przykład, jeśli nazwa rejestru to z i aby uzyskać dostęp do zawartości tego rejestru, użyj „ z p w trybie NORMALNYM. Aby jednak wykonać tę samą operację w trybie INSERT, należy użyć ctrl+r z .

Tryb normalny Aby zapisać treść, użyj cytatu („) , zarejestruj nazwę (a-z) i operator (y, yy, d, c lub cc)
str Tryb normalny Aby wkleić zawartość rejestru użyj cytatu („) , zarejestruj nazwę (a-z) I p/P operator
ctrl+r Tryb WSTAW Aby wkleić zawartość rejestru, użyj ctrl+r i zarejestruj nazwę (a-z)

Masz podstawowe pojęcie o rejestrach Vima. Teraz przejdę do szczegółowego omówienia każdego typu rejestru i jego zastosowania.

Rodzaje rejestrów Vima

W Vimie istnieje 10 typów rejestrów, przeznaczonych do określonych celów.

  1. Rejestr bez nazwy („”)
  2. Numerowane rejestry (0-9)
  3. Mały rejestr usuwania („-)
  4. Rejestry nazwane (a-z lub A-Z)
  5. Rejestry tylko do odczytu („:, „., „%)
  6. Alternatywny rejestr plików („#)
  7. Rejestr wyrażeń („=)
  8. Rejestry wyboru i usuwania („*, „+, +~)
  9. Rejestr czarnych dziur („_)
  10. Rejestr ostatniego wzorca wyszukiwania („/)

1. Rejestr bez nazwy („”)

Jest to domyślny rejestr Vima do przechowywania wyrwanego lub usuniętego tekstu y, yy, d, dd, s, Lub X polecenia.

The :reg. „” polecenia można użyć do wyświetlenia zawartości przechowywanej w rejestrze bez nazwy.

Aby wkleić nienazwaną zawartość rejestru, użyj polecenia put (p lub P) Komenda. Domyślnie P polecenie umieszcza magazyny treści w nienazwanym rejestrze. Alternatywnie dane zapisane w rejestrze nienazwanym można także wkleić za pomocą polecenia „”p.

W poniższym przykładzie skopiowałem linię za pomocą yy polecenie, a następnie umieść je 5 razy, używając liczby 5 z p (5p).

2. Rejestry numerowane (0-9)

Numerowane rejestry służą do przechowywania ostatniego wyrwanego lub usuniętego tekstu.

Rejestr 0 różni się od rejestrów 1-9 . Rejestr 0 zawsze będzie przechowywać ostatni pobrany tekst. Na przykład, jeśli pociągnę linię za pomocą yy polecenie, linia zostanie zapisana w obu plikach anonimowy i 0 rejestruje.

Teraz, jeśli usunę linię za pomocą dd , usunięta linia zostanie zapisana w nienazwanym rejestrze i rejestrze 1 podczas gdy ostatni wyciągnięty tekst pozostanie w rejestrze 0 . Tak więc dostęp do ostatniego szarpniętego tekstu można uzyskać w dowolnym momencie za pośrednictwem rejestru 0 .

Rejestry 1-9 zapisz ostatnio usunięty tekst. Na przykład, jeśli usunę linię za pomocą metody dd polecenie, usunięty tekst zostanie zapisany zarówno w rejestrze bez nazwy, jak i w rejestrze 1 . Rejestr 1 będzie przechowywać najnowszy usunięty tekst. Jeśli usunę kolejną linię, poprzednio usunięty tekst zostanie przeniesiony do rejestru 2 , a najnowsze zostaną zapisane w rejestrze bez nazwy i rejestrze 1 . W zasadzie ponumerowane rejestry (1-9) przechowuj historię usuniętego tekstu.

Przyjrzyjmy się numerowanemu rejestrowi na przykładzie. Poniższy plik tekstowy Vima składa się z 10 linii; szarpnijmy linia 3 za pomocą yy Komenda. Sprawdźmy teraz stan rejestrów za pomocą polecenia :reg.

Przerwana linia znajduje się obecnie w anonimowy I 0 rejestruje. Teraz usuńmy wszystkie linie jedna po drugiej za pomocą dd Komenda. Więc, ostatni linia 10 znajdzie się w rejestrze nienazwanym i rejestrze 1. Jednocześnie w rejestrach zapisane zostaną pozostałe usunięte linie 2-9 w kolejności rosnącej.

Dostęp do tych linii można uzyskać za pomocą przycisku P Komenda. Na przykład, aby umieścić tekst rejestru 9 używać „9p . Ponadto, jeśli chcesz umieścić wartość rejestru 9 5 razy, użyj „95p .

3. Mały rejestr usuwania („-)

Rejestr ten przechowuje usunięty tekst, jeśli jest mniejszy niż linia, za pomocą poleceń takich jak x, św, diw, zimnica, I Ponownie . Co więcej, jeśli usuniesz jakiś tekst za pomocą WIZUALNY trybie wyboru, a jeśli jest mniejsza niż linia, to zostanie zapisana w małym rejestrze usuwania. W Vimie linia oznacza całe zdanie zakończone kropką.

Na przykład w poniższym pliku wybrałem 3 słowa współpraca i wsparcie z linii numer 9 i usunąłem je za pomocą metody D operator. Mały rejestr kasujący zostanie użyty do zapisania tego wyboru, ponieważ jego długość nie przekracza jednej linii. Użyj :reg „- polecenie wyświetlenie zawartości małego rejestru usuwania.

4. Rejestry nazwane (a-z lub A-Z)

Nazwane rejestry służą do przechowywania tekstu specyficznego dla użytkownika. Jeśli więc chcesz przechowywać tekst w rejestrze niestandardowym, to 26 rejestruje się z A Do z może być użyte.

Na przykład przeciągam linię w następującym pliku, używając „ zy , tekst zostanie zapisany w pliku z zarejestruj się, jak pokazano na poniższym obrazku.

Rejestry nazwane małymi i wielkimi literami mają różne cele. Przykładowo, jeśli tekst zapisany jest w rejestrze małych liter, to w celu zastąpienia tekstu tego rejestru zostanie użyty rejestr małych liter. Aby jednak dołączyć tekst do rejestru małych liter, zostanie użyty rejestr wielkich liter o tej samej nazwie.

Wyjaśnijmy to na przykładzie. Z poniższego pliku zapisałem linię 8 w rejestrze X za pomocą ' xyy .

Aby dodać tekst po tej linii, najpierw zaznaczę kilka słów w trybie VISUAL. Aby dołączyć zaznaczony tekst, użyję „Xy Komenda.

Aby zastąpić tekst, ponownie użyję „ xyy .

5. Rejestry tylko do odczytu (., %, 🙂

Vim ma 3 rejestry tylko do odczytu, które przechowują wstawione tekst, nazwa pliku, I ostatnio wykonany Komenda.

. Przechowuje ostatnio wstawiony tekst
% Przechowuje nazwę pliku
: Przechowuje ostatnio wykonane polecenie

Rejestrów tych, jak sama nazwa wskazuje, nie można modyfikować, jednakże dostęp do nich jest łatwy.

Aby umieścić ostatnio wstawiony tekst, użyj opcji '.P Komenda.

Aby wydrukować nazwę pliku, użyj opcji '%P Komenda.

Aby wydrukować ostatnie polecenie, użyj metody ':P.

The @: polecenie może zostać użyte do powtórzenia poprzedniego polecenia w Vimie. W poniższym przykładzie po naciśnięciu usunąłem pierwsze 3 linie @: , usunięto jeszcze 3 linie, dlatego powtórzono poprzednie polecenie.

6. Alternatywny rejestr buforowy („#)

Bufor alternatywny to plik otwierany w bieżącym buforze. Rejestr „# przechowuje nazwę buforowanego pliku w bieżącym buforze. Otwórzmy inny plik w tym samym buforze, używając metody :e ~/.vimrc polecenie, zwróć uwagę, że bieżąca nazwa pliku to plik.txt .

Aby zamknąć otwarty bufor, użyj metody :busuń Lub :wymazanie Komenda. Teraz można zobaczyć alternatywną nazwę pliku zapisaną w formacie „# rejestr.

7. Rejestr wyrażeń („=)

Rejestr wyrażeń jest unikalnym rejestrem, który nie jest używany do przechowywania tekstu, zamiast tego przechowuje wyrażenie. Na przykład, jeśli masz w pliku kilka liczb, do zsumowania tych liczb zostaną użyte wyrażenia Vima.

Dostęp do tego rejestru można uzyskać za pomocą „= w trybie NORMALNYM oraz ctrl+r = w trybie WSTAW.

Na przykład, aby znaleźć różnicę między dwiema liczbami, naciśnij „=, a na pasku stanu pojawi się znak równości; teraz wpisz obie liczby ze znakiem minus (-) i naciśnij Wchodzić klucz. Teraz, aby wydrukować różnicę, naciśnij P lub skorzystaj z :umieścić Komenda.

Aby uzyskać dostęp do wartości rejestru wyrażeń, użyj metody :reg „= Komenda.

Podobnie, aby uzyskać wartość bezwzględną dwóch liczb, użyj funkcji =abs(wartość1-wartość2) wyrażenie.

W ten sam sposób, do przechowywania danych wyjściowych polecenia systemowego, można użyć tego rejestru (wyrażenia). Na przykład, jeśli będę chciał przeczytać zawartość pliku, którego użyję =system(‘cat ’) , po naciśnięciu klawisza Return zawartość wyniku zostanie zapisana. Używając P Lub :umieścić polecenia, zawartość wyniku może zostać umieszczona w buforze.

Istnieje cała gama wyrażeń, których można używać w Vimie. Aby dowiedzieć się więcej o wyrażeniach Vima, użyj :pomoc wyrażenie I :help składnia wyrażeń polecenia.

8. Rejestry selekcji i usuwania („*, „+, „~)

Vim ma dwa rejestry selekcji „* (cytat) i „+ (quoteplus), które służą do przechowywania tekstu z GUI. Rejestry te służą do kopiowania tekstu z programów zewnętrznych, takich jak przeglądarki lub inny edytor tekstu.

Na przykład, jeśli skopiujesz zaznaczenie tekstu z przeglądarki za pomocą ctrl+c Lub cmd+c zostanie on zapisany w „* rejestr. Nie możesz jednak skorzystać P Lub :umieścić aby wkleić ten tekst do edytora Vima. Używać '*P aby umieścić w edytorze Vima tekst skopiowany z aplikacji zewnętrznych.

Warto zauważyć, że jedno i drugie „+ I „* rejestry są podłączone do schowka, więc oba („*p, „+p) można użyć do wklejenia tekstu do edytora Vima. Podobnie, aby umieścić tekst z Vima, użyj „*yy aby przeciągnąć linię, a następnie wkleić ją do dowolnej aplikacji GUI, użyj ctrl+v lub cmd+v.

Należy pamiętać, że jeśli oba rejestry (* i +) robią to samo, więc jaki jest w tym sens? Vim ma dwa rejestry selekcji „*, „+ wykonując tę ​​samą pracę, a to ze względu na system okien X11. X11 udostępnia dwie metody przechowywania tekstu, jedną z nich jest selekcje i drugi jest bufory wycinające . Zaznaczenia są własnością aplikacji i zostają utracone po zamknięciu aplikacji, natomiast obcięte bufory przechowują tekst przechowywany na serwerze X. W przypadku tych dwóch typów przechowywania używane są rejestry „* i „+. Aby dowiedzieć się więcej na ten temat skorzystaj z :pomoc x11-wybór Komenda.

Następny, upuść rejestr „~ który służy do przechowywania tekstu z ostatniej operacji przeciągania i upuszczania. Na przykład, jeśli usuniesz zaznaczenie tekstu z aplikacji zewnętrznej, zostanie ono zapisane w rejestrze upuszczania.

Jeśli wklejanie z aplikacji zewnętrznej przy użyciu trzech różnych klawiszy wydaje Ci się trudne, możesz zmapować zaznaczenie, które ma być zapisane w rejestrze bez nazwy.
Otworzyć vimrc plik, miejsce ustawione schowek=bez nazwy w nim i zapisz plik. Teraz, gdy kopiujesz z aplikacji zewnętrznej, można go łatwo wkleić za pomocą :umieścić polecenie lub klawisz p.

Notatka : Rejestr upuszczania (~) będzie dostępny tylko jeśli Vim jest skompilowany z +dnd. Obecnie jest dostępny tylko dla GTK GUI.

9. Rejestr czarnych dziur („_)

Jeśli wykonasz operację kopiowania lub usuwania w edytorze Vima, domyślnie przechowuje on tekst w rejestrach. Jeśli chcesz usunąć tekst bez zapisywania go w rejestrze, użyj rejestru czarnej dziury. Rejestr ten nie modyfikuje rejestru nienazwanego („”) po usunięciu tekstu.

Na przykład, jeśli chcę usunąć wszystkie linie bez zapisywania ich w nienazwanym rejestrze, to najpierw zaznaczę wszystkie linie za pomocą ggVG a następnie naciśnij '_D klawisze, aby usunąć wszystkie linie. Podobnie, aby usunąć pojedynczą linię prowadzącą do czarnej dziury, użyj „_dd .

10. Rejestr ostatniego wzorca wyszukiwania („/)

Jak sama nazwa wskazuje, rejestr ten zapisuje ostatni wzorzec wyszukiwania za pomocą / Lub ? operatorzy. Na przykład, jeśli szukasz /Linux , a następnie za pomocą '/P wkleję słowo Linux.

Vim używa tego rejestru do nawigacji z N I N klucze po przeszukaniu.

Jest to rejestr zapisywalny, jego zawartość można zmienić za pomocą komendy :let. Na przykład, aby zapisać Linuksa w tym rejestrze, użyj :niech @/=’Linux’.

Rejestry i makra

W Vimie makra są również zapisywane w nazwanych rejestrach (a-z). Jeśli nie znasz makr, to makra to polecenia ustawiania przechowywane w rejestrze. Ten zestaw poleceń można wykonać, po prostu używając znaku @, po którym następuje nazwa rejestru makro. Zasadniczo makra eliminują potrzebę wielokrotnego wpisywania wielu poleceń.

Na przykład, aby zapisać makro w rejestrze M , Użyję qmq . Chcę przenieść się do 5 linie w dół za pomocą 5j i usuń linię za pomocą dd . Używać, mkw , aby rozpocząć nagrywanie makra, a następnie naciśnij 5j I dd . Teraz, aby zakończyć nagrywanie makra, naciśnij Q . Aby sprawdzić czy makro jest zapisane czy nieużywane, :reg „m lub :reg m.

Aby wykonać te polecenia za pomocą rejestru makr, użyj metody :@M Komenda.

Czyszczenie rejestru

Nie ma prostego podejścia do czyszczenia rejestru, ponieważ większość rejestrów nie wymaga czyszczenia, ponieważ ostatecznie zostaną nadpisane. Istnieje jednak kilka technik czyszczenia wartości rejestru w edytorze Vima.

1. Zarejestruj puste makro, aby wyczyścić rejestr. Na przykład, aby wyczyścić rejestr m, użyj mkw .

2. Ustaw pusty tekst za pomocą pozwalać . Na przykład, aby wyczyścić rejestr m, użyj :niech @m=”.

3. Skorzystaj z setreg() funkcja z pustym ciągiem znaków jako argumentem. Na przykład, aby wyczyścić rejestr, użyj :call setreg('m', ”).

Wniosek

Istnieje 10 różnych rejestrów o różnych funkcjonalnościach, co sprawia, że ​​ich zapamiętanie jest prawie niemożliwe. Jeśli jesteś początkujący, radzę pamiętać tylko o trzech rejestrach, rejestrze nienazwanym („”) , numerowane rejestry (0-9) i nazwane rejestry (a-z) .

Aby zapisać tekst w rejestrze, użyj cudzysłowu („) znak nazwą rejestru, po którym następuje polecenie operatora (y, d, c) . Aby wkleić tekst z rejestru, użyj poleceń p lub P poprzedzonych cudzysłowem („) i zarejestruj nazwę.

Pewnie o tym słyszałeś, jeśli wykonujesz zadanie więcej niż dwa razy, zautomatyzuj je. Rejestry Vima mogą być niezwykle przydatne do automatyzacji zadań i ostatecznie poprawiać doświadczenie. Aby dowiedzieć się więcej o rejestrach Vima, skorzystaj z :pomoc rejestruje Komenda.