macOS에서 터미널을 닫은 후 Vim 프로세스에 어떻게 액세스하나요?

macOS에서 터미널을 닫은 후 Vim 프로세스에 어떻게 액세스하나요?

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

실수로 Mac에서 Cmd+W를 눌러 터미널을 닫았습니다. 터미널을 다시 열면 ps목록에 나타납니다. 나는 이 일을 계속하고 싶다.

편집을 위해 vim 프로세스 ie19716을 다시 활성화하고 싶습니다. 특정 vim 프로세스를 다시 열려면 어떤 명령을 실행해야 합니까?

답변1

원래 있던 디렉토리로 돌아가서 base.html이름이 인 파일을 찾으십시오 . 파일이 존재하는 경우 실행하여 파일의 마지막 상태를 복원 .base.html.swp할 수 있습니다 .vi -r base.html

$ 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

답변2

짧은: 아니요, 그럴 수 없습니다.

long: 실제로 vi는 그렇지 않으면 실행되지 않을 수 있습니다.부모프로세스는 직접적인 쉘이 아닙니다. 실행 중인 내용을 확인하고 데이터를 ps -efl추적하는 데 사용할 수 있습니다 .PPIDPID

그러나 그것은일하다전경으로 전환을 사용할 수 있습니다 fg. 이는 현재 셸의 하위 프로세스에만 적용됩니다.

당신은 할 수조사하다프로세스가 gdb또는 을 사용 dtrace하지만 프로세스에 대한 제어력을 잃습니다.

관련 정보