我在工作时使用不同的 VNC,很多时候我忘记保存或关闭在 gvim 中打开的一些文件。稍后,我会在另一个 VNC 中打开同一个文件。虽然它会告诉我由于 .swp 文件,该文件已在其他地方打开。但是,我可能在前一个 VNC 中有一些未保存的重要工作。
有什么方法可以找出我在哪些 VNC 中打开了文件?请帮忙...
答案1
我不知道这是否能给你足够的信息来识别 VNC,因为我没有 VNC 设置来测试它,但它可能会有所帮助。
注意 gvim 表示已存在的交换文件的名称。使用fuser
查找已打开交换文件的 gvim 实例的进程 ID (PID)。然后使用ps -Hf
查找该进程 ID 及其父进程。gvim 进程的最顶层父进程可能在命令行中有足够的信息来识别 VNC。
例如,假设 gvim 告诉您交换文件 /var/tmp/somefile.swp 已经存在。通过执行以下指令查找另一个 gvim 实例的 PID
fuser /var/tmp/somefile.swp
假设 PID 为 12345。执行此命令可以查找有关该进程及其父进程的更多信息:
ps -Hfe | less +/12345
或者,打开交换文件的 gvim 实例的环境可能有一个标识 VNC 的变量。假设 gvim 的 PID 为 12345。以下命令将让您探索该进程的环境。
tr '\0' '\n' < /proc/12345/environ | less