Come inserire la data in vim


23

In vim puoi eseguire i comandi con "!". È possibile combinarlo con "r" per inserire l'output nel buffer corrente.

: r! date
ven 20 lug 09:39:26 SAST 2012

inserirà la data in un file.

Ora, quando provo a fare alcune cose più interessanti come la data con un formato diverso +% F. Sulla riga di comando

$ data +% F
2012-07-20

In vim

: r! date "+% F"
message.to.followup.lstF

Quale out inserisce il nome del file e inserisce F dopo di esso. in qualche modo come r! date "+% F" viene espanso in vim e non eseguito sulla riga di comando. Cosa devo fare per eseguirlo in modo che metta i contenuti in vim.

Forse vim ha un modo migliore per inserire le date nei file.



Ecco un'altra risposta valida utilizzando <F3>. Dovrai modificare il tuo vimrcper ottenere qualsiasi formato di data che ti piace, automatizzato .
nilon,

Risposte:


21

Vim ha una strftime()funzione interna . Prova questo (in modalità inserimento):

<C-r>=strftime('%F')<CR>

1
Sto scegliendo la tua risposta in quanto è il modo migliore per fare le cose.
nelaaro,

1
E in modalità normale questo è lo stesso (inserire la data nella posizione corrente ): "=strftime("%F")<CR>P(Fonte: vim.wikia.com/wiki/Insert_current_date_or_time )
erik

19

Ho continuato a sperimentare fino a quando ho capito che Vim stava espandendo il carattere "%". Quindi scappa "\%" e tutto funziona come mi aspettavo.

: r! date "+ \% F"
2012-07-20

Ora posso mettere le date in file come vorrei

: r! date "+ \% F" -d "-2 day"
18/07/2012


1
+1 Che puoi usare anche con altri programmi date, e quindi è più facile da ricordare rispetto al concetto di "strftime" internazionale.
matematica,

10

Un altro metodo, senza scappare, usando system():

system('date +%F')

In modalità INSERT :

<C-r>=system('date +%F')<CR>

In modalità NORMALE :

:put=system('date +%F')<CR>

1
<Cr> è molto utile, vorrei aver trascorso più tempo a leggere l'aiuto in vim.
nelaaro,

1
Non è mai troppo tardi.
Romainl,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.