2010-03-09 22 views
10

Potenzialmente 2 domande in una. Mi piacerebbe sapere come fare riferimento a un registro in modalità Ex.Registro Vim Uso in modalità Ex

Ad esempio, sto modificando un file e voglio salvare il file con un timestamp (o semplicemente un datestamp) 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\"") 

Esiste una 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.

risposta

11

Ci sono due approcci per farlo, ma probabilmente nessuno dei due è esattamente quello che vuoi.

  1. Usa <CTRL-R>a per inserire il contenuto nella riga di comando corrente. Vedi :help c_CTRL-R per maggiori informazioni.

  2. Utilizzare exe per consentire l'inserimento di variabili nell'espressione. Vedi :help :exe e :help 41.3.

    :exe 'w testfile.' . @a 
    
1

Supponendo registrati "a", è possibile digitare:

<CTRL-R>a che sarà inserire il valore di registrare una linea in quel punto. Questo può essere usato anche in modalità inserimento.

+0

Sì, sapevano che, alla ricerca di un modo per farlo senza dover incollarlo in. Nessun motivo particolare, ma sarebbe bello avere qualcosa che dereferenziazioni automaticamente la variabile – Peck

Problemi correlati