Eu acho que o comportamento que você vê é apenas porque o processo de backup do Vim é lento. No meu sistema ext4 simples, esse problema se manifesta como um erro "arquivo está vazio" do compilador.
Para verificar os horários, usei esta sequência de Bash:
strace -tt -o /dev/stdout gvim --nofork main.cxx | grep 'main.cxx\|close'
Com os backups ativados, vejo um intervalo de 200 ms entre o arquivo desaparecer e finalmente ser salvo:
09:06:49.587341 rename("main.cxx", "main.cxx~") = 0
09:06:49.668654 open("main.cxx", O_WRONLY|O_CREAT|O_TRUNC, 0644) = 12
09:06:49.755454 close(12) = 0
Quando eu uso set nowritebackup
no meu .vimrc
, o arquivo não é renomeado; há apenas um aberto e um próximo:
09:19:45.731416 open("main.cxx", O_WRONLY|O_CREAT|O_TRUNC, 0644) = 12
09:19:45.815763 close(12) = 0
Esta é uma boa explicação para o problema que você está enfrentando?
P.S. Não foi possível encontrar outra menção a este problema no Rastreador de problemas do Vim ou no Vim desenvolvedor / listas de discussão do usuário, por isso não posso dizer se a equipe do Vim consideraria alterar a sequência de chamadas do sistema de backup.