Vi desfaz o arquivo atualizado?

5

Acabei de excluir um monte de texto em um arquivo e salvei-o.

É possível recuperar a versão mais antiga do arquivo?

Eu sei que deveria ter feito um backup, apenas tentando a minha sorte.

    
por Koshur 16.06.2016 / 15:16

1 resposta

7

Se você estiver usando vim , poderá recuperar alguns ou todos os seus textos excluídos porque o vim armazena as 9 exclusões mais recentes nos registros 1 a 9, que são salvas em um arquivo chamado .viminfo em seu arquivo. diretório inicial quando você sai do vim .

Esses registros salvos em ~/.viminfo são globais, para todos os arquivos que foram editados, NOT um conjunto por arquivo editado. Portanto, se você tiver editado outro arquivo e excluído todas as linhas, parte ou todo o texto excluído terá desaparecido.

Se você ainda não editou e excluiu (muitas) linhas de outros arquivos, há uma boa chance de (algumas) suas linhas excluídas ainda estarem lá.

Você pode verificar se o seu texto ainda está nos registros com o comando :registers em vim .

  1. execute vim filename (onde filename é o nome do arquivo que você acidentalmente removeu)

  2. Digite :registers (ou a forma abreviada, apenas :reg ) e pressione enter .

  3. Examine a saída para ver se algo está parecido com o seu texto.

por exemplo. no meu sistema, vejo algo como o seguinte em vim :

:reg
--- Registers ---
""   ^J
"0   ^J
"1   You can check to see if your text is still in those registers with the :registers command in vim.^J
"2   If you haven't edited and deleted lines from other files yet, there's a good chance your deleted lines will still be there.^J^J
"3   If you are using vim, you may be able to recover some or all of your deleted text because vim stores the most recent 9 deletion in registers 1 to 9, which are saved to a file called .viminf
"4   ^J
...
...
...

Nota: "" é o registrador "sem nome" e sempre contém o valor do último yank ou delete, e "0 é o atual registro de yank. Para mais informações, consulte Como uso os registros vim . O Google também me encontrou esta postagem no blog que a descreve bem.

Há também a ajuda integrada com :help registers e, claro, link , link e link para mais informações gerais vim .

  1. Se você vir alguns dos textos deletados em um registrador, então digite ", seguido pelo número do registrador, e então p para colar no registrador atual. buffer na localização atual.

    por exemplo. Se eu quisesse restaurar os registros 1 e 2 acima, eu digitaria:

    " 1 p " 2 p

    e esses registros seriam colados no meu buffer de edição atual.

NOTA: assim que você digitar qualquer coisa, como " para começar a colar um registro, a exibição :registers desaparecerá. Então, anote os registros que deseja restaurar ou digite :registers sempre que precisar se lembrar.

    
por 18.06.2016 / 04:09

Tags