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.

Était-ce utile?

La solution

Il y a deux façons de faire, mais sans doute ne sont exactement ce que vous voulez.

  1. 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.

  2. 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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top