Como inserir a data no vim

18

No vim você pode executar comandos com "!". Você pode combinar isso com "r" para inserir a saída em seu buffer atual.

:r!date
Fri Jul 20 09:39:26 SAST 2012

irá inserir a data em um arquivo.

Agora, quando tento fazer algumas coisas mais interessantes, como data com formato diferente +% F. Na linha de comando

$ date +%F
2012-07-20

No vim

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

Qual fora coloca o nome do arquivo e coloca F depois dele. algum como o r! date "+% F" está sendo expandido no vim e não executado na linha de comando. O que eu preciso fazer para executar isso para colocar o conteúdo no vim.

Talvez o vim tenha uma maneira melhor de inserir datas em arquivos.

    
por nelaaro 20.07.2012 / 09:50

3 respostas

17

O Vim possui uma função interna strftime() . Tente isto (no modo de inserção):

<C-r>=strftime('%F')<CR>
    
por 20.07.2012 / 21:07
18

Eu continuei experimentando até que descobri que o vim estava expandindo o caractere "%". Então apenas escape "\%" e tudo funciona como eu esperava.

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

Agora posso colocar datas em arquivos como gostaria

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

    
por 20.07.2012 / 09:50
7

Outro método, sem escapar, usando system() :

system('date +%F')

No modo INSERT :

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

No modo NORMAL :

:put=system('date +%F')<CR>
    
por 20.07.2012 / 10:26