Vim registre Utilisation en mode Ex
-
18-09-2019 - |
Question
potentiellement 2 questions en une. Je voudrais savoir comment référencer un registre en mode Ex.
Par exemple, je suis d'éditer un fichier et je veux enregistrer le fichier avec un horodatage (ou tout simplement datestamp vraiment) qui y est annexé.
je sais pouvoir définir registre à la valeur d'une enveloppe en utilisant des commandes de sortie:
:let @a = system("date +\"%Y-%m-%d\"")
Y at-il de déréférencer ce registre et insérer sa valeur dans une commande Ex? Quelque chose comme:
:w testfile.<value of "a register>
Copie dans le presse-papiers du système et coller serait bien, mais le faire dans un plus générique / moyen programitic pour la construction d'autres commandes dans l'avenir serait bien.
La solution
Il y a deux façons de faire, mais sans doute ne sont exactement ce que vous voulez.
-
Utilisation
<CTRL-R>a
pour insérer le contenu de la ligne de commande en cours. Voir:help c_CTRL-R
pour plus d'informations. -
Utilisation
exe
pour permettre l'insertion des variables dans l'expression. Voir:help :exe
et:help 41.3
.:exe 'w testfile.' . @a
Autres conseils
En supposant registre "a", vous pouvez taper:
<CTRL-R>a
qui va entrer la valeur d'enregistrement d'une ligne à ce point. Ceci peut être utilisé en mode d'insertion ainsi.