De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.


Vim - Inserção da data atual no arquivo

Colaboração: André Leon S. Gradvohl

Data de Publicação: 22 de agosto de 2014

Quando se escreve programas ou scripts, é boa prática colocar comentários no início dos arquivos com uma breve descrição do que faz aquele script ou programa, quem é o autor, a versão e a data da última atualização. Veja o exemplo de um preâmbulo de um script bash a seguir.

  #!/bin/bash 
  # Script for automatic backup between different cluster accounts 
  # Author: Andre Leon Sampaio Gradvohl, PhD 
  # Version 1.02 
  # Last version: Thu Aug 21 2014, 11:31:39 (UTC+0200) 

No Vim (Vi improved) existem várias estratégias para adicionar a data corrente no arquivo de forma automática. Das que conheço, a que eu prefiro utiliza o comando read do Vim e o comando date do bash.

Assim, para adicionar a data atual na linha seguinte à posição do cursor, mude para o modo comando com < ESC> e depois digite

  :read !date  

Ao inves do read você pode usar simplesmente o r da seguinte forma

  :r !date 

Atente para o fato de que o comando read sempre adicionará o resultado do comando que vem depois do sinal de exclamação (!) na linha seguinte à linha do cursor.

No meu caso, como no exemplo de preâmbulo que descrevi antes, eu não uso simplesmente o resultado do comando date, mas algo um pouco mais complexo: um comentario seguido da data atual.

Assim, podemos usar uma combinação do comando echo, com o date da seguinte forma:

  :.-1read !echo "\# Last version: `date \+\%c`" 

Explicando em partes:

  • Observe que antes do comando read aparecem .-1. Com isso quero dizer ao Vim que vou colocar o resultado do comando que vem depois do sinal de exclamação uma linha antes (-1) da linha onde ficará o resultado (.).
  • O comando echo imprimirá o que vem entre aspas duplas ("). Note que usei o backslash (\) para indicar que os símbolos #, + e % não fossem interpretados como operadores do Vim;
  • O comando date +%c que aparece entre crases (`) vai obter a data atual no formato data e hora.
  • Com isso a string Last version: Thu Aug 21 2014, 11:31:39 (UTC+0200) será adicionada ao arquivo.

    Como um bom programador só resolve um problema uma única vez, você pode criar um comando que faz isso automaticamente ao simples pressionar de uma tecla no Vim. Para isso, basta adicionar a linha a seguir, referente ao map, no arquivo .vimrc.

      map < F2> :.-1read !echo "\# Last version: `date \+\%c`" 
    

    Dessa forma, sempre que se pressionar a tecla < F2> o comando será executado.

    Mais informações podem ser encontrados no próprio Vim digitando a linha a seguir:

      < ESC> help read 
    

    É isso.

André Leon S. Gradvohl é docente na Faculdade de Tecnologia da UNICAMP. Atualmente ele está realizando Pós-doutorado na França no Laboratoire d'Informatique de Paris 6 (LIP6), na área de Sistemas Distribuídos, e está com muita saudade do Brasil.

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


Veja a relação completa dos artigos de André Leon S. Gradvohl