为什么文本文件总是在我关闭它的同时打开?

为什么文本文件总是在我关闭它的同时打开?

我有一个.txt文本内容很长的文件。

我注意到,每当我阅读内容到某一行并关闭文件时,如果我稍后重新打开文件(立即、几小时后或几天后),文件打开时总是显示我结束的相同区域之前的阅读并关闭文件。

您对这种行为有什么解释吗? (任何提示、实施......)

我用 Gedit 打开该文件。

答案1

许多文本编辑器将您最后的光标位置存储在您编辑过的文件中。通常仅存储您使用编辑器保存的文件的信息,并且不同的编辑器在这方面的行为可能有所不同。但它不会存储在您编辑的文件中。它存储在其他地方,因为在纯文本文件中,没有合适的地方放置它。Gedit 使用 gvfs 来存储和检索每个文件的此信息。

正如中所解释的CrazyApe84自己的回答gedit 在哪里存储最后一个光标位置?(在询问 Ubuntu),gedit 通过将光标位置写入 来记住您在每个文件中的位置~/.local/share/gvfs-metadata/home。当您重新打开文件时,它会读回它们。 gedit 使用的不是包含打开、写入和读取该文件的显式代码重力加速度该文件是这些特定 gvfs 数据恰好存储的位置。该信息存储在metadata::gedit-position您编辑的每个文件的 gvfs 属性中。这并不矛盾的原因是文件的 gvfs 属性不是文件的一部分,甚至不是其常规文件系统元数据的一部分。它们存储在gvfs-metadata目录中的文件中,例如home.

如果您想自己查看(甚至编辑)此信息,请安装该gvfs-bin软件包:

sudo apt update
sudo apt install gvfs-bin

(这是针对 Debian 及其衍生产品,例如您正在使用的 Ubuntu。此外,根据您使用的桌面环境,gvfs-info可能已经安装了类似的命令。但是 gedit 本身并不使用这些命令行实用程序,而是安装gedit在非-GNOME桌面环境不安装gvfs-bin。)

然后就可以使用gvfs-info命令查看属性了。假设您编辑的文件名为your-file它位于当前目录中。然后运行:

gvfs-info -a metadata::gedit-position your-file

或者,如CrazyApe84 的回答解释说,您可以在以下输出中 grep for metadata::gedit-position(或者只是position,如果您愿意有一些额外的行):gvfs-info your-file

gvfs-info your-file | grep metadata::gedit-position

有一个流行的 gedit 分支叫做普马,它带有MATE桌面环境(并且与 gedit 一样,如果您使用不同的桌面环境,则可以单独安装)。如果您使用pluma而不是gedit,则该属性是metadata::pluma-position而不是metadata::gedit-position。如果您想知道为什么 gedit 和pluma 不共享有关您在文件中的位置的信息,那就是原因。

相关内容