Não toque no arquivo durante a gravação se o arquivo não tiver sido alterado


15

Ocasionalmente, digito distraidamente :wquando estou lendo alguma coisa. Isso faz com que o tempo de modificação do arquivo seja alterado e, às vezes, faz com que meu sistema de compilação reconstrua desnecessariamente uma parte substancial de um projeto.

Existe uma maneira de configurar o vim para simplesmente não fazer nada se eu tentar escrever um arquivo e ele não foi alterado?

Respostas:


15

Estendendo a resposta do @ lcd047 que você pode usar cabbrevpara modificarw

:cabbrev w <c-r>=(getcmdtype()==':' && getcmdpos()==1 ? 'up' : 'w')<CR>

Quando você digita :w, notará que ele será substituído :upquando você pressionar retornar.


14

Não diretamente (ou seja, o comportamento de :wnão pode ser alterado), mas você pode aprender a usar em :upvez de :w. Faz exatamente o que você quer.


3
Deixe-me acrescentar: eu uso um mapeamento de teclas favorito para salvar e vinculei-o a ele em :updatevez de :writeobter o requisito Pôster original.
Giovanni Maggiorani
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.