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?


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

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.


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}


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>

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.


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.


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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.