在 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 可能不会运行,除非它家长进程不直接是shell。您可以使用 来查看正在运行的内容ps -efl,并按照数据进行PPID操作PID

然而,它不是一个工作您可以使用 切换到前台fg。这只适用于当前 shell 的子进程。

你可以检查进程使用gdbdtrace,但失去了对该进程的控制。

相关内容