Por que o arquivo de texto sempre abre no mesmo ponto em que o fechei?

0

Eu tenho um arquivo .txt com um conteúdo de texto bastante longo.

Notei que sempre que eu leio o conteúdo até certa linha e fecho o arquivo, se eu reabrir o arquivo mais tarde (imediatamente, horas depois ou dias depois), o arquivo abre sempre me mostrando a mesma região onde Terminei minha leitura anterior e fechei o arquivo.

Você tem alguma explicação sobre esse comportamento? (quaisquer dicas, implementação ...)

Eu abro o arquivo com o Gedit.

    
por Billal Begueradj 23.10.2017 / 12:05

1 resposta

5

Muitos editores de texto armazenam sua última posição do cursor em arquivos que você editou. A informação é frequentemente armazenada apenas para arquivos que você salvou com o editor, e diferentes editores podem se comportar de maneira diferente a esse respeito. Mas não é armazenado no arquivo que você editou. Ele é armazenado em outro lugar, porque dentro de um arquivo de texto simples, não há um bom lugar para colocá-lo. O Gedit usa o gvfs para armazenar e recuperar essas informações para cada arquivo.

Como explicado na resposta do próprio CrazyApe84 para Onde o gedit armazena a última posição do cursor? (em Ask Ubuntu ), o gedit se lembra de onde você estava em cada arquivo escrevendo suas posições do cursor para ~/.local/share/gvfs-metadata/home . Ele os lê quando você reabre o arquivo. Em vez de conter código explícito para abrir, escrever e ler esse arquivo, o gedit usa gvfs e esse arquivo é onde esses gvfs específicos os dados são armazenados. As informações são armazenadas no atributo metadata::gedit-position gvfs de cada arquivo editado. O motivo que não é uma contradição é que os atributos gvfs de um arquivo não fazem parte do arquivo ou até mesmo de seus metadados regulares do sistema de arquivos . Eles são armazenados em arquivos no diretório gvfs-metadata , como home .

Se você quiser visualizar - ou até mesmo editar - essas informações, instale o pacote gvfs-bin :

sudo apt update
sudo apt install gvfs-bin

(Isto é para o Debian e seus derivados, como o Ubuntu, que você está usando. Além disso, dependendo do ambiente de desktop que você está usando, comandos como gvfs-info podem já estar instalados. Mas o gedit não usa esses utilitários de linha de comando e instalar gedit em um ambiente de trabalho não-GNOME não instala gvfs-bin .)

Em seguida, você pode usar o comando gvfs-info para exibir o atributo. Suponha que o arquivo editado tenha sido chamado your-file e esteja no diretório atual. Então corra:

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

Ou, como a resposta do CrazyApe84 explica, você poderia fazer um grep para metadata::gedit-position (ou apenas position , se você está disposto a ter algumas linhas extras) na saída de gvfs-info your-file :

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

Há um fork popular do gedit chamado pluma , que vem com o Ambiente de área de trabalho MATE (e que, como o gedit, pode ser instalado separadamente se você usar um ambiente de área de trabalho diferente). Se você estiver usando pluma em vez de gedit, o atributo será metadata::pluma-position em vez de metadata::gedit-position . Caso você já tenha se perguntado por que o gedit e o pluma não compartilham informações sobre onde você estava em um arquivo, é por isso.

    
por 23.10.2017 / 14:41

Tags