Eu criei um plugin chamado "noswapsuck" que só ativa o arquivo de troca quando o buffer contém alterações não salvas. Depois que as alterações são salvas, o arquivo de troca é limpo. Portanto, os arquivos de troca que contêm o mesmo conteúdo que o arquivo no disco serão removidos.
Venha aqui: noswapsuck.vim
Tem funcionado bem para mim, mas nunca o publiquei antes, então gostaria de receber feedback.
Vantagens:
- Os únicos arquivos de troca que permanecem no seu disco serão arquivos de troca importantes que realmente diferem do arquivo!
Desvantagens:
Se o buffer tiver um arquivo de troca, ele não será detectado quando o arquivo for aberto pela primeira vez. Ele só será detectado quando swapfile
estiver ativado, que é quando você começa a editar o buffer. Isso é irritantemente tarde e irá interrompê-lo. (Resolvido: agora verificamos um arquivo de troca preexistente quando um buffer é aberto, ativando temporariamente a swapfile
opção novamente.)
Se você estiver trabalhando em um ambiente em que deseja minimizar gravações em disco (por exemplo, baixo consumo de energia ou arquivos montados em uma rede ou editar um arquivo enorme), não é ideal continuar removendo e recriando o arquivo de troca em todos os salve e edite. Em tais situações, você pode fazer:
:let g:NoSwapSuck_CloseSwapfileOnWrite = 0
que manterá o arquivo de troca após uma gravação, mas ainda o removerá quando o buffer perder o foco.
A propósito, tenho outro pequeno plug-in :DiffAgainstFileOnDisk
que pode ser bastante útil depois de clicar (r)ecover
, para verificar se o buffer que você recuperou é mais recente ou mais antigo que o arquivo existente ou idêntico a ele.