Como posso acessar um processo do Vim depois de fechar seu terminal no macOS?

3

Isso é o que recebo quando executo o comando ps :

$ ps
  PID TTY           TIME CMD
14777 ttys000    0:00.25 -bash
19716 ttys000    0:00.15 vi templates/base.html
 8240 ttys001    0:00.11 -bash
 8284 ttys002    0:00.04 -bash
14832 ttys004    0:00.06 -bash
17504 ttys004    0:00.15 python ./app.py
17505 ttys004    1:05.52 /Users/Utka/virtualenv/bin/python ./app.py
19732 ttys005    0:00.02 /Applications/iTerm.app/Contents/MacOS/iTerm2 --server login -fp MrDifferent
19734 ttys005    0:00.01 -bash

Fechei acidentalmente o terminal pressionando o Cmd + W no meu Mac. Quando abro meu terminal novamente, ele aparece na lista ps . Quero voltar a trabalhar nisso.

Eu quero reativar o processo do vim, por exemplo, 197166 para edição. Qual comando eu preciso executar para reabrir esse processo específico do vim?

    
por Utkarsh 16.11.2016 / 10:38

2 respostas

2

curto: não, você não pode

long: na verdade, o vi provavelmente não estaria em execução, a menos que o processo parent não fosse diretamente o shell. Você pode ver o que está sendo executado usando ps -efl e seguindo os dados PPID to PID .

No entanto, não é um trabalho que você possa alternar para o primeiro plano usando fg . Isso só funciona para subprocessos do seu shell atual.

Você pode inspecionar o processo usando gdb ou dtrace , mas perdeu o controle sobre o processo.

    
por 17.11.2016 / 10:59
1

Volte para o diretório que seu base.html está localizado, procure por um arquivo chamado .base.html.swp . Se existir, você poderá executar vi -r base.html e recuperar o último estado do arquivo.

$ ls -a | grep base
base.html
.base.html.swp
$ kill 19716 #your vim process
$ vi -r base.html
[ save your changes, quit ]
$ rm -f .base.html.swp
    
por 17.11.2016 / 02:14