Onde o VIM (gvim / macvim) mantém os arquivos de troca de buffers não salvos / não nomeados?

49

Onde o VIM (gvim / macvim) mantém os arquivos de troca de buffers não salvos / não nomeados? (Se isso acontecer).

Antecedentes: Durante um semi-seminário intenso, eu estava tomando notas em um buffer de MacVim não-nomeado / não salvo quando o MacBook ficava sem energia e desligava do nada (Ele não dormia / hibernava como normalmente faria).

Pergunta: Alguém saberia se há alguma chance de que o trabalho não salvo tenha sido salvo em um arquivo de troca (.swp) ou algo semelhante que possa ser recuperado?

Detalhes do sistema: Em particular, isso aconteceu usando MacVim em um Mac OS X 10.5.8 (mas possíveis dicas de recuperação para outras versões também são de interesse). Ainda não reiniciei o MacVim, caso isso seja iniciado, iniciaremos um processo de limpeza.

    
por davur 05.10.2010 / 02:59

4 respostas

54

Inicie o vim e tente:

:recover <filename>

Se o arquivo nunca teve um nome, simplesmente:

:recover

Essa é a sua melhor aposta. Para mais informações sobre arquivos de swap e recuperação, consulte:

:help usr_11

Sobre os arquivos de troca, normalmente eles são salvos no mesmo diretório do arquivo que está sendo editado, mas com um arquivo. adicionado o começo para torná-lo oculto e .swp no final, mas é possível movê-lo para outro lugar por algo como:

:set directory=~/vimswap

ou similar.

Veja:

:help swap

Para todos os detalhes.

No entanto, um arquivo de troca vim não é o mesmo que o buffer editado, então não deixe de ler o que pode ser feito para recuperação.


EDIT : comentários respondendo a pergunta:

[…] Parece procurar em seu diretório de trabalho atual, ~ / tmp, / var / tmp e / tmp para arquivos de troca e no meu caso eu sempre tenho um conjunto de diretórios de trabalho atual e é onde ele foi salvo. - dsclementsen 5 de outubro de 10 às 1:42

também, certifique-se de verificar o argumento da linha de comando vim -r. Isto irá imprimir todos os arquivos de troca encontrados e onde eles estão. Além disso, ele terá muitas informações extras, como data / modificado / nome de usuário / etc ... - Neg_EV Oct 5 '10 em 13:49

    
por 05.10.2010 / 03:07
2

Eu trabalho no Windows 10 e o :recover não encontrou um arquivo de troca. vim -r listou o arquivo de troca da última sessão de edição (também nunca salva) chamada _.swp. A recuperação foi possível com :recover _ .

    
por 11.04.2016 / 20:11
1

A resposta é: em todo o lugar. O truque é encontrar o caminho certo. Alguns estão em seu diretório / tmp, mas muitos deles estão em algum lugar em seu diretório inicial.

Existem maneiras mais eficientes de fazer isso, mas o seguinte funcionou para mim quando perdi um arquivo sem nome (no MacBook):

no diretório inicial, pesquise por arquivos de backup (leva alguns segundos e provavelmente pode ficar mais inteligente):

find ./ -name ".s*" > findVimBackups.txt

abrir arquivo:

vim findVimBackups.txt

remova os nomes dos arquivos que não são para backups de arquivos sem nome:

:g!/\/\.s..$/d
:g/svn/d

Agora vejo uma lista dos locais dos arquivos de backup sem nome. Em cada um desses diretórios eu corro o seguinte até encontrar o (s) arquivo (s) a partir de hoje:

ls -ltra <directory>

Eu gravei no diretório correto e abri o vim e digite     :recuperar e selecione o backup correto.

    
por 19.01.2018 / 22:00
0

Parece que eles vão acabar no seu diretório de trabalho :pwd Este é o lugar onde você abriu o vim ou alternadamente você pode tê-lo configurado usando :cd ou similar.

os arquivos de swap para buffers sem nome parecem ser colocados lá sem nenhum nome de arquivo, então você vai acabar com .swp .swn .swo etc. Eu descobri isso não ao tentar recuperar algo, mas quando meu hg ignorava o arquivo não era t cobrindo sufixos diferentes!

Eu adivinhei que ter muitos buffers sem nome com alterações pode ter sido a causa e excluir esses buffers fez com que os arquivos de mistério desaparecessem

    
por 12.10.2018 / 18:22