Não tenho certeza do comportamento exato do Notepad aqui. Embora eu não saiba como fazer vim
fazer isso com base em algum texto existente em um arquivo, eu poderia fazer com que vim
fizesse algo semelhante para arquivos de uma certa extensão, adicionando isso a ~/.vimrc
:
au BufWritePre *.log :normal G"=strftime("\n%b %d, %Y %X\n")^Mp
Explicação:
-
au
- significaAutoCommand
, a maneiravim
de executar alguma ação para algum evento. -
BufWritePre
- o eventovim
para antes de escrever um arquivo. -
*.log
- os arquivos para fazer isso (você pode escolher outra extensão) -
:normal
- Vá para o modo normal (o modo em que você geralmente está quando iniciavim
) -
G
- vai para a última linha -
"=strftime("\n%b %d, %Y %X\n")^M
- No buffer padrão ("
), copie a saída da funçãostrftime
(a^M
é uma nova linha literal, obtida pressionando Ctrl V , então Enter ) -
p
- depois cole o buffer.
Sempre que escrevo o arquivo usando :w
, a data atual será anexada ao arquivo:
$ vim test.log
$ vim test.log
$ cat test.log
I did some work.
Oct 26, 2014 01:15:55 IST
Didn't I?
Oct 26, 2014 01:16:02 IST
Isso é bastante personalizável. Você pode escolher sua extensão de arquivo, deixar de fora o G
se você quiser acrescentar a data após a linha atual, modificar o formato da hora, usar outros eventos (ver :h autocmd-events
).