Essa mensagem é realmente muito importante se você se preocupa em não perder o texto que não salvou. Ele deve não ser considerado irritante, e deve não causar-lhe para apagar rapidamente o arquivo de swap ou configure vima correr sem ele.
Qualquer arquivo com o qual você editar vimterá um arquivo de troca correspondente enquanto você edita , vimusado para acompanhar as alterações. Quando você parar de editar um arquivo, vimdescartará automaticamente o arquivo de troca correspondente. Portanto, a existência de um arquivo de troca e sua tentativa de gravar sobre o arquivo original devem ser motivo de consideração e ação apropriada.
Os dois cenários apresentados na mensagem ( E325: ATTENTION Found a swap file) são bastante comuns: (1) qualquer outro vimprograma está editando o mesmo arquivo que você está tentando editar (que poderia realmente ser outra pessoa - caso em que realmente não faria sentido excluir apenas cegamente o arquivo de troca - ou pode ser você em outra janela ou guia do terminal) ou (2) uma vimsessão anterior travou (na maioria das vezes isso acontece quando você está editando remotamente e a sessão de rede é cortada), na qual caso a sessão vim não tenha sido encerrada normalmente e o .swparquivo permaneça atrasado; outro exemplo desse segundo cenário é que você acidentalmente fechou a janela ou guia do terminal que possuía uma vimsessão ativa ou em segundo plano ).
Quando encontro essa mensagem, penso primeiro se estou editando esse arquivo em outra janela ou guia do terminal, pois normalmente opero com várias janelas do terminal com várias guias cada:

Se eu perceber que estou editando em outro local e puder retornar a ele , pressione a qtecla para (Q)uitesta sessão adicional e retornarei à edição pela vimsessão original .
Às vezes, se não tiver certeza, (Q)uitcorro jobspara verificar se estou executando vimexatamente no mesmo terminal; se nada acontecer, corro ps -ef | grep vimpara verificar se estou executando em vimoutro local (ou seja, em outra janela ou guia do terminal). O ponto é que sempre tento retomar a edição através da vimsessão original .
Se tiver certeza de que não posso retornar à sessão de edição original e ainda assim me apresentarem as seguintes opções, pressione rpara (R)ecover.
Swap file ".notes.swp" already exists!
[O]pen Read-Only, (E)dit anyway, (R)ecover, (Q)uit, (A)bort:
Pressionando r, você verá uma mensagem como esta:
Swap file ".notes.swp" already exists!
"notes" 18L, 46C
Using swap file ".notes.swp"
Original file "/private/tmp/notes"
Recovery completed. Buffer contents equals file contents.
You may want to delete the .swp file now.
Press ENTER or type command to continue
Se, por outro lado, não estiver mais com essas opções, porque estou no prompt do shell, então corro vimcom a -ropção, da seguinte maneira:
vim -r notes
A mensagem resultante será semelhante:
Using swap file ".notes.swp"
Original file "/private/tmp/notes"
Recovery completed. Buffer contents equals file contents.
You may want to delete the .swp file now.
Press ENTER or type command to continue
De qualquer forma, pressione ENTERpara continuar e você verá seu arquivo.
Nota: Se o Vim tiver dúvidas sobre o que encontrou, ele emitirá uma mensagem de erro e inserirá linhas com "???" No texto. Se você vir uma mensagem de erro durante a recuperação, procure no arquivo "???" para ver o que está errado. Você pode recortar e colar para obter o texto necessário.
A observação mais comum é "??? LINHAS AUSENTES". Isso significa que o Vim não pode ler o texto do arquivo original. Isso pode acontecer se o sistema travar e partes do arquivo original não forem salvas.
Dito isto, nunca vi essas ???marcas, portanto essa deve ser uma ocorrência verdadeiramente rara .
Em seguida, salve (ou seja, escreva) o conteúdo em outro arquivo (normalmente apenas adiciono "2" ao final do nome do arquivo original):
:w notes2
Em seguida, saia da força nesta vimsessão:
:q!
Em seguida, compare os dois arquivos:
diff notes notes2
Se o valor diffnão retornar nada , isso significa que não há diferença e é seguro remover o arquivo de permuta e o segundo arquivo:
rm .notes.swp notes2
Nesse ponto, abra o arquivo original e continue como se nunca houvesse um problema:
vim notes
Se o valor diffretornar algo , isso significa que o arquivo original (via arquivo de troca) teve alterações que, graças à recuperação, foram salvas no segundo arquivo.
Como essas alterações são capturadas no segundo arquivo, é seguro excluir o arquivo de troca e substituir o arquivo original pelo segundo:
rm .notes.swp
remove .notes.swp? y
mv notes2 notes
overwrite notes? (y/n [n]) y
Nesse ponto, abra o arquivo original e continue como se nunca houvesse um problema:
vim notes
Parece muito trabalho, mas depois que você se acostuma com o fluxo de trabalho, leva 20 segundos no máximo.