vim 未显示在 Fuser 中

vim 未显示在 Fuser 中

首先使用 Vim 编辑一个文件,比如 /tmp/A。

假设vim进程是唯一访问/tmp/A的进程,则使用“ctrl+z”暂停该进程,并执行

fuser /tmp/A

然后你在输出中看不到任何内容。

但是,如果您使用“less”打开该文件,您可以在 fusion 输出中看到 less 的 pid。

vim 是否有什么特别之处导致了这种奇怪的情况?

答案1

是的,vim 在需要保存文件之前不会打开文件。相反,vim 使用临时隐藏交换文件来保存您增量所做的更改。保存文件 ( :w) 后,它将写入原始文件。

您可以使用 来亲自查看lsof,即:

$ lsof -n -p `pidof vim`
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF   NODE NAME
[...]
vim     9695 gert    4u   REG  252,1    12288 410388 /tmp/.a.swp
[...]

这是常见的行为编辑less只是读取文件,在打开文件进行读取时使用技巧是没有任何好处的。

相关内容