Co to jest nagrywanie Vima i jak można je wyłączyć?


761

Ciągle widzę recordingkomunikat w dolnej części okna gVim 7.2.

Co to jest i jak to wyłączyć?


55
Aby na dobre wyłączyć rejestrowanie vima, dodaj map q <Nop>do pliku .vimrc.
Joey Adams,

4
Nie mogę uwierzyć, że chcesz wyłączyć nagrywanie! Pokazałbym naprawdę denerwujące okienko „Jesteś pewien?” jeśli ktoś poprosi o wyłączenie go (lub prawdopodobnie chciałby podać opcje takie jak aktualizacja systemu Windows 10).
0xc0de,

Odpowiedzi:


1053

Rozpoczniesz nagrywanie od q<letter> i możesz zakończyć, pisząc qponownie.

Nagrywanie to bardzo przydatna funkcja Vima.

Zapisuje wszystko, co piszesz. Następnie możesz go odtworzyć, po prostu pisząc @<letter>. Wyszukiwanie rekordów, ruch, wymiana ...

Jedna z najlepszych funkcji Vima IMHO.


109
Jak widać w innych miejscach, po nim następuje rejestr. Naprawdę fajną (i być może nie intuicyjną) częścią tego jest to, że są to te same rejestry, których używają rzeczy takie jak delete, yank i put. Oznacza to, że możesz przeciągnąć tekst z edytora do rejestru, a następnie wykonać go jako polecenie.
Cascabel

68
Jeszcze jedną rzeczą wartą odnotowania jest to, że możesz nacisnąć dowolną liczbę przed znakiem @, aby odtworzyć nagranie, które wielokrotnie (100 @ <letter>) odtworzy twoje działania 100 razy
Tolga E

7
Możesz dodać go później, edytując rejestr za pomocą put / yank. Ale nie wiem, dlaczego chcesz włączyć lub wyłączyć nagrywanie jako część makra. („q” ​​nie wpływa na nic po wpisaniu w trybie wstawiania).
anisoptera

3
@Wade "- nazywa się to rejestrem domyślnym.
Cascabel

4
and how to turn offbyło również pytanie
n611x007

103

Wpisz, :h recordingaby dowiedzieć się więcej.

                           * q *  * nagrywanie * 
q {0-9a-zA-Z "} Zapisz wpisane znaki w rejestrze {0-9a-zA-Z"}
                        (wielkie litery do dołączenia). Polecenie „ q ” jest wyłączone
                        podczas wykonywania rejestru , a on nie działa w środkuodwzorowania . {Vi: brak nagrania}

q                        Zatrzymuje nagrywanie . (Nota implementacyjna: „ q ” to
                        zatrzymuje nagrywanie nie jest zapisywane w rejestrze , chyba
                         że było to wynikiem odwzorowania ) {Vi: brak nagrania}


                                                        * @ *
@ {0-9a-z ". = *} Wykonaj zawartość rejestru {0-9a-z". = *} [Liczba] 
                        razy. Pamiętaj, że zarejestruj% ” (nazwa prądu
                        plik) i „ # ” (nazwa alternatywnego pliku) nie mogą być
                        używany. W przypadku „ @ = ” pojawi się monit o wprowadzenie
                         wyrażenia . Wynik wyrażenia jest wtedy
                        wykonany. Zobacz także | @: |. {Vi: tylko nazwane rejestry}


31

Wpisywanie qrozpoczyna rejestrowanie makr, a nagrywanie kończy się, gdy użytkownik qponownie uderzy .

Jak wspomniał Joey Adams, aby wyłączyć nagrywanie, dodaj następujący wiersz do .vimrckatalogu domowego:

map q <Nop>

11
odpowiedz tylko na pytanie „jak wyłączyć” część pytania. Cóż, sprawia, że ​​nagrywanie staje się niedostępne, skutecznie go wyłączając - przynajmniej nikt nie spodziewa się, że vi będzie mieć osobny wątek dla tego kodu, jak sądzę, łącznie ze mną.
n611x007

25

Jak powiedzieli inni, jest to rejestrowanie makr, a wyłączasz je za pomocą q. Oto fajny artykuł o tym, jak to zrobić i dlaczego jest przydatny.


15

Oznacza to, że jesteś w trybie „nagrywaj makro”. Do tego trybu wchodzi się po wpisaniu, qa po nim nazwa rejestru, i można go opuścić, wpisując qponownie.


W rzeczywistości wpisuje się go wpisując, qa następnie dowolną nazwę rejestru, czyli 0-9, az, AZ i „.
ephemient

3
Właściwie to q {0-9a-zA-Z "} - możesz zapisać makro w dowolnym rejestrze (nazwanym cyfrą, literą,"). W przypadku, gdy naprawdę chcesz go użyć ... zawartość rejestru wykonujesz za pomocą @ <rejestr>. Zobacz :help qi :help @jeśli jesteś zainteresowany użyciem.
Cascabel
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.