Você pode matar o vim (mas não use -9) e todas as suas alterações serão salvas nos arquivos .swp
. Então você começa um novo vim e usa o Recover.
Quando saí do trabalho ontem, deixei o vim aberto com os arquivos em que estava trabalhando. Estou trabalhando em casa hoje, então eu entrei em VPN e, quando vou editar esses mesmos arquivos, recebo o aviso de que há outra sessão vim atual aberta com esses arquivos.
Eu sei que eu poderia forçar o logout do meu outro usuário, mas isso mataria a sessão existente do vim. Eu acho que minhas alterações seriam salvas no arquivo .swp
.
Em vez disso, é possível eu pegar essa sessão vim existente e abri-la com meu segundo login? Dessa forma, com certeza preservaria todas as minhas alterações, e eu não precisaria abrir as mesmas guias novamente.
Que tal usar screen
ou tmux
como alternativa? Dessa forma, você pode desconectar sua sessão de tela quando terminar e depois fazer o login mais tarde (possivelmente de outra máquina) e reconectar.
Você está correto em dizer que um logout / kill forçado de seu outro processo vim permitirá que você pegue o arquivo ".swp" deixado para trás e comece a trabalhar com ele. Apenas testei essa teoria e ela funcionou no Ubuntu de qualquer maneira. Apenas certifique-se de selecionar a opção "Recuperar" quando ele disser que um arquivo de troca já existe.
Isso deve receber qualquer modificação que não tenha sido salva, mas não tenho certeza sobre outras informações da sessão, como o histórico de comandos.
Existe este pequeno programa chamado retty
, mas eu não tenho absolutamente nenhuma idéia de como ele é confiável.
Você não pode assumir processos que foram iniciados em outro terminal. Se você tivesse iniciado o vim dentro da tela, você teria sido capaz de desanexar a sessão de tela e então reconectar a partir de um terminal diferente (incluindo um externo sobre o ssh).
Depois, há retty
, mas não está disponível para todas as plataformas de hardware e está em um estágio experimental - basicamente, use a seu próprio risco.
Outra opção é fazer :mks
(fazer sessão) de vez em quando; se você matar o vim e iniciá-lo a partir de um terminal diferente, você pode simplesmente fornecer o arquivo Session.vim
que o comando mks criou (ou iniciar o vim com vim -S Session.vim
) e retomar sua sessão (você pode ter que responder a alguns restaurar prompts embora).
reptyr : utilitário para pegar um programa em execução existente e anexá-lo a um novo terminal
Da página man : "reptyr é um utilitário para pegar um programa em execução existente e anexá-lo a um novo terminal. Iniciou um processo de longa duração sobre o ssh, mas precisa sair e usar Não quero interrompê-lo? Basta iniciar uma tela, use o reptyr para pegá-lo e, em seguida, matar a sessão ssh e ir para casa. "