我有一个.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 不共享有关您在文件中的位置的信息,那就是原因。