Como posso recuperar o arquivo original de um arquivo .swp?

49

Eu tentei abrir o arquivo .swp usando vi e cat , mas ele exibe lixo.

    
por zarna 28.10.2010 / 09:32

5 respostas

77

vim -r .swp

Isso entra no modo de recuperação e fornece mais informações. Eu acho que isso é o que você quer.

.swX -files são deixados para trás se uma sessão com um arquivo não salvo for eliminada / travar / outra coisa ruim acontecer. Eles também estão presentes durante o tempo em que um buffer não salvo é aberto em uma sessão do Vim. vim -r lê esses arquivos temporários e recria o conteúdo. Depois de recuperá-lo, salve-o como de costume, por exemplo :w newfilename .

    
por 30.10.2010 / 12:33
14

Você não precisa ter o arquivo original para recuperar o .swp. Basta abrir o arquivo como se ele existisse. O vim irá procurar o arquivo com a extensão .swp e oferecer para recuperá-lo.

por exemplo:

$ ls -a
. .. .test.txt.swp
$ vim test.txt
[...]
Swap file ".test.txt.swp" already exists!
[O]pen Read-Only, (E)dit anyway, (R)ecover, (D)elete it, (Q)uit, (A)bort:

Basta pressionar r para recuperar e: wq o arquivo

Editar: Observe que o arquivo .swp contém apenas as alterações feitas no arquivo (ver comentário). Isso significa que você precisará buscar uma cópia recente do arquivo do backup e, em seguida, usar o vim para recuperar as alterações mais recentes. Se você não tem uma cópia de backup do arquivo, você está realmente sem sorte.

    
por 28.10.2010 / 09:41
7

Abra o arquivo original usando o vim e escolha a opção de recuperação.

    
por 28.10.2010 / 09:34
6

1 Abra o arquivo de permuta .file.swp in vim

2 :recover recuperará seu arquivo

    
por 08.11.2014 / 07:20
6

Depois de ler os comentários de Vegar Westerlund e Heptite, eu queria saber em que ponto o vim precisa do arquivo original (ou de um backup) para recuperar um arquivo .swp. Veja o que fez:

Eu abri um arquivo de 975 linhas, editei na linha 949 (criando um arquivo .swp ) e matei o processo, depois deletei o original. $ vim Original_File perguntou se eu queria me recuperar do arquivo .swp »> sim; somente as primeiras 68 linhas e as últimas 34 linhas (começando 8 linhas acima da minha edição) foram realmente recuperadas.

Em seguida, repeti o teste com arquivos menores: de 20 até 200 linhas, o arquivo .swp continha 100% do conteúdo original . Mas em 300 linhas, apenas as primeiras 68 e as 18 últimas linhas (começando 2 linhas acima da minha edição) foram incluídas no .swp.

Como conclusão, é bom saber que o vim sempre salva o "cabeçalho" e "inferior" do arquivo nos arquivos .swp. Talvez haja uma configuração para controlar a quantidade de linhas que um .swp contém?

    
por 06.02.2015 / 21:16

Tags