você está aqui: Home  → Arquivo de Mensagens

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.


 

 

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

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script