Acesso direto ao conteúdo
Logotipo Dicas-L, por Ricardo Burile

Busca

Visite também: Segurança Linux ·  UnderLinux ·  VivaOLinux ·  LinuxSecurity ·  NoticiasLinux ·  BR-Linux ·  SoftwareLivre.org ·  [mais]   
 

Você está aqui: Home  → Arquivo Dicas-L

 

Assine a Lista Dicas-L

Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.

Change log automático no vim

Colaboração: Sérgio Luiz Araújo Silva

Data de Publicação: 25 de Abril de 2005

Que tal atualizar a data de modificação dos seus arquivos de texto de forma automática no vim?

Editaremos o arquivo ~/.vimrc. Criamos um mapeamento para uma tecla de função para salvar sem o tradicional :w <cr> "<cr> é igual a enter"

Antes de salvar saia do modo insert com ESC

  map <F9> :w<cr>
  
  "  salva um arquivo preexistente
  
  fun! LastChange()
    mark z
    if getline(1) =~ ".*Last Change:" ||
                            \ getline(2) =~ ".*Last Change:"  ||
                            \ getline(3) =~ ".*Last Change:"  ||
                            \ getline(4) =~ ".*Last Change:"  ||
                            \ getline(5) =~ ".*Last Change:"
       exec "1,5s/\s*Last Change: .*$/Last Change: " . strftime("%c") . "/"
    endif
    exec "'z"
  endfun
  
  Insira em uma das cinco primeiras linhas de seus arquivos
  Last Change: "alguma data"

Se for no próprio vimrc coloque aspas duplas no começo da linha

Abaixo uma chamada à função LastChange, pode dar o nome que quiser contanto que substitua nos lugares certos

  au BufWritePre * call LastChange()

Agora mais dois brindes, cabeçalhos prontos que você chama em modo normal com ,cl e ,sh

  fun! InsertChangeLog()
     normal(1G)
     call append(0, "Arquivo")
     call append(1, "Criado: " . strftime("%a %d/%b/%Y hs %H:%M"))
     call append(2, "ultima modificação: " . strftime("%a %d/%b/%Y hs %H:%M"))
     call append(3, "Autor: Sérgio Luiz Araújo Silva")
     normal($)
  endfun
  map ,cl :call InsertChangeLog()<cr>A
  
  " Cria um cabeçalho para scripts bash
  fun! InsertHeadBash()
     normal(1G)
     call append(0, "#!bin/bash")
     call append(1, "# Criado em:" . strftime("%a %d/%b/%Y hs %H:%M"))
     call append(2, "# ultima modificação:" . strftime("%a %d/%b/%Y hs %H:%M"))
     call append(3, "# O NOME DA SUA EMPRESA")
  - Hide quoted text -
     call append(3, "# Propósito do script")
     normal($)
  endfun
  map ,sh :call InsertHeadBash()<cr>A

Veja a relação completa dos artigos de Sérgio Luiz Araújo Silva

Formato PDF
Newsfeed RSS
Formato para impressão
PDF RSS Imprimir

Referências Adicionais

Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.

Avalie esta dica

  • Currently 3.05/5
  • 1
  • 2
  • 3
  • 4
  • 5

Avaliação: 3.0 /5 (1234 votos)

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
Lan University

Submarino.com.br

Encontre imóveis, apartamentos e casas a venda no Imobilien
Saiba mais

 

 

Procure pela casa ou apartamento ideal à venda ou para aluguel na busca inteligente do Imohoo
Buscar imóveis