Frage

Potenziell 2 Fragen in einem. Ich würde gerne wissen, wie ein Register, in Ex-Modus zu verweisen.

Zum Beispiel, ich bin der Bearbeitung einer Datei und ich möchte die Datei mit einem Zeitstempel (oder nur Datumsstempel wirklich) angehängt speichern.

Ich weiß, dass ich auf den Wert einer Schale registrieren können Befehle ausgegeben werden:

:let @a = system("date +\"%Y-%m-%d\"")

Gibt es eine dereferenzieren dieses Register und setzen Sie seinen Wert in einem Ex-Befehl? So etwas wie:

:w testfile.<value of "a register>

Kopieren in die Zwischenablage und Einfügen wäre schön, aber in der Zukunft für den Aufbau auf anderen Befehlen in einer allgemeineren / programitic Art und Weise zu tun wäre schön.

War es hilfreich?

Lösung

Es gibt zwei Ansätze, dies zu tun, aber wahrscheinlich nicht genau, was Sie wollen.

  1. Mit <CTRL-R>a den Inhalt in der aktuellen Befehlszeile einzufügen. Siehe :help c_CTRL-R für weitere Informationen.

  2. Verwendung exe Einfügung von Variablen in den Ausdruck zu ermöglichen. Siehe :help :exe und :help 41.3.

    :exe 'w testfile.' . @a
    

Andere Tipps

Unter der Annahme, "a" registrieren, können Sie Folgendes eingeben:

<CTRL-R>a, die wird Eingang der Wert einen Inline an diesem Punkt registrieren. Dies kann auch in Insert-Modus verwendet werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top