Qu'est-ce que l'enregistrement Vim et comment le désactiver?

761

Je continue de voir le recordingmessage au bas de ma fenêtre gVim 7.2.

Qu'est-ce que c'est et comment le désactiver?

vehomzzz
la source
55
Pour désactiver définitivement l'enregistrement vim, ajoutez-le map q <Nop>à votre fichier .vimrc.
Joey Adams
4
Je ne peux pas croire que vous vouliez désactiver l'enregistrement! Je montrerais une fenêtre contextuelle vraiment ennuyeuse "Êtes-vous sûr?" si l'on demande de le désactiver (ou si vous souhaitez probablement donner des options comme la mise à jour Windows 10).
0xc0de
En relation: Comment quitter l'éditeur Vim?
Peter Mortensen

Réponses:

1056

Vous commencez l'enregistrement par q<letter> et vous pouvez le terminer en tapant à qnouveau.

L'enregistrement est une fonctionnalité très utile de Vim.

Il enregistre tout ce que vous tapez. Vous pouvez ensuite le rejouer simplement en tapant @<letter>. Recherche d'enregistrements, mouvement, remplacement ...

L'une des meilleures fonctionnalités de Vim IMHO.

yogsototh
la source
109
Comme vu ailleurs, c'est q suivi d'un registre. Une partie vraiment cool (et peut-être non intuitive) de ceci est que ce sont les mêmes registres utilisés par des choses comme delete, yank et put. Cela signifie que vous pouvez extraire du texte de l'éditeur dans un registre, puis l'exécuter en tant que commande.
Cascabel
68
Une autre chose à noter est que vous pouvez frapper n'importe quel nombre avant le @ pour rejouer l'enregistrement qui plusieurs fois comme (100 @ <letter>) jouera vos actions 100 fois
Tolga E
7
Vous pouvez l'ajouter ensuite, en éditant le registre avec put / yank. Mais je ne sais pas pourquoi vous souhaitez activer ou désactiver l'enregistrement dans le cadre d'une macro. ('q' n'affecte rien lorsqu'il est tapé en mode insertion.)
anisoptera
3
@Wade "- cela s'appelle le registre par défaut.
Cascabel
4
and how to turn offétait aussi la question
n611x007
103

Tapez :h recordingpour en savoir plus.

                           * q *  * enregistrement * 
q {0-9a-zA-Z "} Enregistrer les caractères saisis dans le registre {0-9a-zA-Z"}
                        (majuscule à ajouter). La commande « q » est désactivée
                        lors de l'exécution d'un registre , et cela ne fonctionne pas à l'intérieur
                        une cartographie . {Vi: pas d'enregistrement}

q                        Arrête l' enregistrement . (Note de mise en œuvre: le « q » qui
                        arrête l' enregistrement n'est pas stocké dans le registre , sauf
                         s'il résulte d'un mappage ) {Vi: pas d'enregistrement}


                                                        * @ *
@ {0-9a-z ". = *} Exécute le contenu du registre {0-9a-z". = *} [Count] 
                        fois. Notez que le registre ' % ' (nom du courant
                        fichier) et ' # ' (nom du fichier alternatif) ne peuvent pas être
                        utilisé. Pour " @ = ", vous êtes invité à saisir une
                         expression . Le résultat de l' expression est alors
                        réalisé. Voir aussi | @: |. {Vi: uniquement les registres nommés}
éphémère
la source
31

La frappe qdémarre l'enregistrement de macro et l'enregistrement s'arrête lorsque l'utilisateur frappe à qnouveau.

Comme l'a mentionné Joey Adams, pour désactiver l'enregistrement, ajoutez la ligne suivante à .vimrcdans votre répertoire personnel:

map q <Nop>
mitchus
la source
11
Répondez uniquement à la question «comment désactiver». Eh bien, cela rend l'enregistrement inaccessible, le désactivant effectivement - au moins personne ne s'attend à ce que vi ait un thread séparé pour ce code, je suppose, y compris moi.
n611x007
25

Comme d'autres l'ont dit, c'est l'enregistrement macro et vous le désactivez avec q. Voici un bel article sur comment et pourquoi il est utile.

JeffH
la source
15

Cela signifie que vous êtes en mode "macro d'enregistrement". Ce mode est entré en tapant qsuivi d'un nom de registre et peut être quitté en tapant à qnouveau.

John Millikin
la source
Il est en fait entré en tapant qsuivi par n'importe quel nom de registre, qui est 0-9, az, AZ et ".
ephemient
3
En fait, c'est q {0-9a-zA-Z "} - vous pouvez enregistrer une macro dans n'importe quel registre (nommé par chiffre, lettre,"). Dans le cas où vous souhaitez réellement l'utiliser ... vous exécutez le contenu d'un registre avec @ <register>. Voyez :help qet :help @si vous êtes intéressé à l'utiliser.
Cascabel