Retomando uma sessão vim acidentalmente desconectei

5

Eu me deparei com um problema incomum hoje em dia,

Eu estava usando o vim, criei um novo alias no bash e queria testá-lo.

Então eu ctrl- z , exec bash (eu faço isso porque não gosto de aninhar com bash ).

E meu trabalho foi embora. E agora não posso retomar o vim.

A única opção que posso imaginar é matar o vim e iniciar uma nova sessão.

vim

ctrl - z

exec bash
fg  

Editar : Isso é independente do uso de screen / tmux.

    
por hamhut1066 24.06.2014 / 14:56

3 respostas

7

Considere reptyr :

NAME
       reptyr - Reparent a running program to a new terminal

SYNOPSIS
       reptyr PID

Encontre o ID do processo do vim com pidof vim ou ps aux | grep vim .

Também é possível ver o id do processo se você tentar abrir um arquivo que ainda esteja aberto pelo vim. Usando o pid mostrado, você deve ser capaz de se reconectar à sua sessão anterior.

Se você receber um erro:

Unable to attach to pid 12345: Operation not permitted

Verifique se ptrace scope está definido como 0 (em vez de 1 ):

echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope

Depois de executar reptyr , você pode ter que pressionar Enter ou outra tecla para atualizar a janela do terminal (console).

    
por Thor 24.06.2014 / 17:34
4

vim -r {file} é o que você deseja, "r" para "Modo de recuperação". Veja man vim :

Recovery mode.  The swap file is used to recover a  crashed 
editing  session.   The  swap  file is a file with the same
filename as the text file with ".swp" appended.  See ":help
recovery".
    
por Jos 24.06.2014 / 15:07
0

Você vai querer usar algo como o utilitário 'screen' ou 'tmux' para manter suas sessões de terminal em segundo plano.

    
por lbaile200 24.06.2014 / 15:06