Cos'è la registrazione Vim e come può essere disabilitata?


761

Continuo a vedere il recordingmessaggio nella parte inferiore della mia finestra di gVim 7.2.

Che cos'è e come lo spengo?


55
Per disattivare definitivamente la registrazione di VIM, aggiungi map q <Nop>al tuo file .vimrc.
Joey Adams,

4
Non posso credere che tu voglia disattivare la registrazione! Mostrerei un popup davvero fastidioso "Ne sei sicuro?" se uno chiede di disattivarlo (o probabilmente vorrebbe dare opzioni come dà l'aggiornamento di Windows 10).
0xc0de,

Risposte:


1055

Inizi a registrare q<letter> e puoi terminarlo digitando di qnuovo.

La registrazione è una funzione davvero utile di Vim.

Registra tutto ciò che scrivi. È quindi possibile riprodurlo semplicemente digitando @<letter>. Registra ricerca, movimento, sostituzione ...

Una delle migliori caratteristiche di Vim IMHO.


109
Come visto in altri luoghi, è q seguito da un registro. Una parte davvero interessante (e forse non intuitiva) di questo è che questi sono gli stessi registri usati da cose come delete, yank e put. Ciò significa che è possibile trascinare il testo dall'editor in un registro, quindi eseguirlo come comando.
Cascabel,

68
Un'altra cosa da notare è che puoi premere qualsiasi numero prima di @ per riprodurre la registrazione che molte volte come (100 @ <letter>) eseguirà le tue azioni 100 volte
Tolga E

7
È possibile aggiungerlo successivamente, modificando il registro con put / yank. Ma non so perché vorresti attivare o disattivare la registrazione come parte di una macro. ('q' non influisce su nulla quando viene digitato in modalità insert.)
anisoptera il

3
@Wade ": si chiama registro predefinito.
Cascabel,

4
and how to turn offera anche la domanda
n611x007,

103

Digita :h recordingper saperne di più.

                           * q *  * registrazione * 
q {0-9a-zA-Z "} Registra i caratteri digitati nel registro {0-9a-zA-Z"}
                        (maiuscolo da aggiungere). Il comando ' q ' è disabilitato
                        durante l'esecuzione di un registro , e che non funziona all'interno
                        una mappatura . {Vi: nessuna registrazione}

q                        Interrompe la registrazione . (Nota di implementazione: la ' q ' che
                        interrompe la registrazione non viene memorizzata nel registro , a meno che non
                         sia stato il risultato di una mappatura ) {Vi: nessuna registrazione}


                                                        * @ *
@ {0-9a-z ". = *} Esegue il contenuto del registro {0-9a-z". = *} [Conta] 
                        volte. Nota che registra ' % ' (nome dell'attuale
                        file) e ' # ' (nome del file alternativo) non possono essere
                        Usato. Per " @ = " viene richiesto di inserire
                         un'espressione . Il risultato dell'espressione è quindi
                        eseguito. Vedi anche | @: |. {Vi: solo registri con nome}


31

La digitazione qavvia la registrazione macro e la registrazione si interrompe quando l'utente preme di qnuovo.

Come accennato da Joey Adams, per disabilitare la registrazione, aggiungi la seguente riga .vimrcnella tua home directory:

map q <Nop>

11
rispondo solo a "come disattivare" parte della domanda. Bene, rende la registrazione inaccessibile, disattivandola efficacemente - almeno nessuno si aspetta che vi abbia un thread separato per questo codice, immagino, incluso me.
n611x007,


15

Significa che sei in modalità "record macro". Questa modalità viene inserita digitando qseguita da un nome di registro e può essere chiusa digitando di qnuovo.


Viene effettivamente inserito digitando qseguito da qualsiasi nome di registro, che è 0-9, az, AZ e ".
effimero

3
In realtà, è q {0-9a-zA-Z "} - puoi registrare una macro in qualsiasi registro (chiamato per cifra, lettera,"). Nel caso in cui si desideri effettivamente utilizzarlo ... si esegue il contenuto di un registro con @ <register>. Vedi :help qe :help @se sei interessato a usarlo.
Cascabel,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.