Vim: erro ao alterar a data de modificação de script [RESOLVIDO]

1. Vim: erro ao alterar a data de modificação de script [RESOLVIDO]

Elder Marco
eldermarco

(usa Fedora)

Enviado em 21/08/2012 - 10:36h

Olá pessoal,

Para não ter de modificar manualmente a data de modificação de um script, decidi automatizar esse processo através do
Vim. Para isso, inseri o seguinte no meu ~/.vimrc:


autocmd BufWritePre,FileWritePre *.sh
\ exe "1," . 15 . "g/Modificado:.*/s/Modificado:.*/Modificado: " .
\ strftime ("%d/%m/%Y")


O problema é que isso não tem funcionado como eu espero. Quando vou salvar o arquivo, o Vim gera um erro dizendo


Erro detectado ao processar Comandos automáticos BufWrite para "*.sh"
E488: Caracteres em excesso no final da linha.


Eu não sei realmente o que ele quer dizer com isso, mas sei se que eu tirar a função strftime desse comando, ele passa
a funcionar sem problemas. No entanto, o autocomando já não teria mais utilidade pra mim, é claro.

Alguma dica para resolver isso? Fiz várias pesquisas pela internet e todas apresentavam uma solução similar a esta,
mas continuo com a mesma mensagem de erro.


  


2. Re: Vim: erro ao alterar a data de modificação de script [RESOLVIDO]

Elder Marco
eldermarco

(usa Fedora)

Enviado em 26/08/2012 - 14:27h

Bom, consegui resolver o problema. Por algum motivo, este comando dava errado devido a barra (/) dentro da função strftime. Dessa maneira, optei por usar a data apenas no formato "%c" e tudo correu bem.

Abaixo segue os códigos que utilizei com algumas modificações para que ele atualize esta data somente o arquivo foi modificado e as alterações tenham efeito somente até a linha 15 (espera-se que o cabeçalho não seja maior que isso):


function! UpdateLastModification ()
if &modified == 1
if line ("$") > 15
let l = 15
else
let l = line ("$")
endif

silent!
\ execute "1," . l . "g/Modificado:/s/Modificado:.*/Modificado: " .
\ strftime ("%c")
endif
endfunction

autocmd BufWritePre,FileWritePre *
\ ks| call UpdateLastModification () |'s



Fica ai a dica para alguém que esteja com um problema parecido. =)


3. Re: Vim: erro ao alterar a data de modificação de script [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 15/11/2012 - 01:17h

Que coisa chata, isso.

Estou tentando inserir a tag: <br/> no final de cada linha do texto de forma automática, mas retorna:


E488: Caracteres em excesso no final da linha


O mesmo erro que você, mas por motivos diferentes, suponho.
O Fábio que me ensinou, para isso devo digitar no (modo visual): s/$/<br/>/

Se faço: s/$/<br>/

Dá certinho! O problema está mesmo com a barra / .
E não sei como configurar isso no .vimrc.


Vou voltar pro Windows!!!


4. Re: Vim: erro ao alterar a data de modificação de script [RESOLVIDO]

Elder Marco
eldermarco

(usa Fedora)

Enviado em 15/11/2012 - 10:42h

Izaias, você já tentou escapar a barra?: s/$/<br\/>/

O problema deve ser esse. O Vim está interpretando essa barra como se você tivesse querendo substituir o final da linha por <br somente e sim assim o quisesse, não faria sentido ter um >/ depois te tudo isso. Caracteres que tenham algum significado especial para o Vim devem sempre ser escapados para que sejam interpretados literalmente.



5. Re: Vim: erro ao alterar a data de modificação de script [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 15/11/2012 - 12:44h

É isso mesmo, Elder. Percebeu o problema com conhecimento!
E eu quebrando a cabeça! Não tenho vocação pra isso, vou voltar pro Windows.

Se você não fosse um Fedora-user, a gente seria amigo.




rsrs
Brigadão, pinguim!


6. Re: Vim: erro ao alterar a data de modificação de script [RESOLVIDO]

Elder Marco
eldermarco

(usa Fedora)

Enviado em 15/11/2012 - 13:52h

Sua alma ainda será salva Izaias. Tenha fé! rsrsrs


7. Re: Vim: erro ao alterar a data de modificação de script [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 15/11/2012 - 14:59h

VLW, Elder.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts