Vim registro uso in modalità Ex
-
18-09-2019 - |
Domanda
Potenzialmente 2 domande in una. Mi piacerebbe sapere come fare riferimento a un registro in modalità Ex.
Per esempio, io sto modificando un file e voglio salvare il file con un timestamp (o solo datestamp realmente) aggiunto ad esso.
So di poter impostare il registro per il valore di un guscio comandi output utilizzando:
:let @a = system("date +\"%Y-%m-%d\"")
C'è un altro per dereference questo registro e inserire il suo valore in un comando Ex? Qualcosa di simile:
:w testfile.<value of "a register>
Copia negli appunti di sistema e incollare sarebbe bello, ma farlo in un modo più generico / programitic per la costruzione su altri comandi in futuro sarebbe bello.
Soluzione
Ci sono due approcci per fare questo, ma probabilmente non sono esattamente quello che vuoi.
-
Usa
<CTRL-R>a
per inserire il contenuto della riga di comando corrente. Vedere:help c_CTRL-R
per maggiori informazioni. -
Usa
exe
a consentire l'inserimento di variabili nell'espressione. Vedere:help :exe
e:help 41.3
.:exe 'w testfile.' . @a
Altri suggerimenti
Supponendo registro "a", è possibile digitare:
<CTRL-R>a
cui verrà ingresso il valore di registrare una linea in quel punto. Questo può essere usato in modalità di inserimento pure.