Onde o VIM (gvim / macvim) mantém arquivos de troca por buffers não salvos / sem nome? (Se assim for).
Antecedentes: Ao longo de um seminário semi-intenso, eu estava anotando um buffer MacVim sem nome / não salvo quando o MacBook ficou sem suco e desligou do nada (ele não dormia / hibernou como normalmente).
Pergunta: Alguém saberia se existe alguma chance de que o trabalho não salvo tenha sido salvo em um arquivo de troca (.swp) ou semelhante, que possa ser recuperado?
Detalhes do sistema: Em particular, isso aconteceu com o MacVim no Mac OS X 10.5.8 (mas também são interessantes dicas de recuperação possíveis para outras versões). Ainda não reiniciei o MacVim, caso isso inicie um processo de limpeza.
Respostas:
Inicie o vim e tente:
:recover <filename>
Se o arquivo nunca teve um nome, simplesmente:
:recover
Essa é a sua melhor aposta. Para saber mais sobre arquivos de permuta e recuperação, consulte:
:help usr_11
Sobre os arquivos de troca, normalmente eles são salvos no mesmo diretório que o arquivo que está sendo editado, mas com um. adicionou o começo para torná-lo oculto e .swp no final, mas é possível movê-los para outro lugar por algo como:
:set directory=~/vimswap
ou similar.
Vejo:
:help swap
Para todos os detalhes.
Um arquivo de troca do vim não é o mesmo que o buffer editado, no entanto, não deixe de ler o que pode ser feito para recuperação.
EDIT : comentários respondendo à pergunta:
[…] Parece procurar no seu diretório de trabalho atual, ~ / tmp, / var / tmp e / tmp por arquivos de troca e, no meu caso, eu sempre tenho um diretório de trabalho atual definido e foi onde ele foi salvo. Veja o que você precisa.
Além disso, verifique a linha de comando vim -r arg. Isso imprimirá todos os arquivos de troca encontrados e onde eles estão. Além disso, ele terá muitas informações extras, como data / modificação / nome de usuário / etc ... # : 1001 Neg_EV
fonte
:recover
sem nome de arquivo. Acabei de testar isso para recuperar um arquivo sem nome e funcionou. De qualquer forma, mesmo que esse comando em particular não ajude, a leitura desses arquivos de ajuda pode.recover
sem argumentos, deixei-me escolher mesmo entre algumas sessões mais antigas. De qualquer forma, o arquivo .swp para um buffer não unificado provavelmente está em / tmp, mas estaria em outro lugar, dependendo se você possuiset directory= <something>
.:recover!
para recuperar meu arquivo não salvo.Eu trabalho no Windows 10 e
:recover
não encontrei um arquivo de troca.vim -r
listou o arquivo de troca da última sessão de edição (também nunca salva) chamada _.swp. Recuperar era possível com:recover _
.fonte
A resposta é: em todo o lugar. O truque é encontrar o caminho certo. Alguns estão no diretório / tmp, mas muitos estão em algum lugar no diretório inicial.
Talvez haja maneiras mais eficientes de fazer isso, mas o seguinte funcionou para mim quando perdi um arquivo sem nome (no MacBook):
no diretório inicial, procure por arquivos de backup (leva alguns segundos e provavelmente pode ser mais inteligente):
abrir arquivo:
remova nomes de arquivos que não são para backups de arquivos sem nome:
Agora vejo uma lista dos locais de arquivos de backup sem nome. Em cada um desses diretórios, eu executo o seguinte até encontrar o (s) arquivo (s) de hoje:
Entro no diretório certo e abro o vim e digite: recuperar e selecione o backup correto.
fonte
Parece que eles acabarão no seu diretório de trabalho.
:pwd
É aqui que você abre o vim ou, alternativamente, você pode configurá-lo usando:cd
ou similar.os arquivos de troca por buffers sem nome parecem ser despejados ali sem nome de arquivo, então você acabará com .swp .swn .swo etc. Eu descobri isso não ao tentar recuperar alguma coisa, mas quando meu arquivo hg ignore não estava cobrindo o suficiente sufixos diferentes!
Imaginei que ter muitos buffers sem nome com alterações poderia ter sido a causa e a exclusão desses buffers fazia com que os arquivos misteriosos desaparecessem.
fonte