O Vim possui uma função interna strftime()
. Tente isto (no modo de inserção):
<C-r>=strftime('%F')<CR>
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.
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
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>
Tags command-line bash vim date linux