O vim usa arquivos .swp como áreas de armazenamento para trabalhos inacabados, permitindo que edite arquivos muito grandes, mesmo que eles não caibam completamente na memória. Este é um legado dos tempos em que a RAM do computador era muito pequena e grandes arquivos que não cabiam na memória era mais comum, mas permaneceu, e significa que podemos editar arquivos com muitos Gigabytes sem consumir toda a RAM disponível ou matar processos. O Vim exclui o arquivo .swp quando terminar de editá-lo ou o deixa, se o processo sair anormalmente.
Se você tiver um arquivo .swp e um arquivo original, você pode recuperar um pouco de trabalho perdido. Isso está documentado aqui:
Para recuperar um arquivo, basta abrir o arquivo original. O vim notará que já existe um arquivo .swp associado ao arquivo e lhe dará um aviso e perguntará o que você deseja fazer. Supondo que você tenha os privilégios necessários para gravar no arquivo, "recover" deve ser uma das opções dadas.
Como alternativa, você pode iniciar uma nova instância vim (em um documento em branco) e usar o comando :recover <file>
indicando o arquivo que deseja recuperar.
Observe que o uso principal de arquivos .swp é como armazenamento temporário para o vim, permitindo a edição de arquivos grandes, NÃO de recuperação. Como tal, o vim não escreve o diário no arquivo e, se a energia for perdida durante a edição, o arquivo .swp pode ficar corrompido. Felizmente, a ferramenta de recuperação no vim é bastante tolerante para corromper parcialmente arquivos .swp e ainda tentará recuperar o máximo possível das alterações perdidas no arquivo. Procure a existência de três pontos de interrogação: ???
no arquivo recuperado, pois eles serão inseridos sempre que a corrupção for encontrada no arquivo .swp.
Quando estiver satisfeito com a recuperação, você precisará excluir manualmente o arquivo .swp para garantir que você não continue recebendo o aviso quando for editar o arquivo. Tenha cuidado para não executar o processo de recuperação uma segunda vez.