
.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できますmetadata::gedit-position
(またはposition
必要に応じて追加の行を追加することもできます)。gvfs-info your-file
gvfs-info your-file | grep metadata::gedit-position
人気のgeditフォークがあります。ピューマ、これMATEデスクトップ環境(そして、geditと同じように他のデスクトップ環境を使用している場合は別々にインストールできます。)geditの代わりにPlumaを使用している場合、このプロパティmetadata::pluma-position
はmetadata::gedit-position
。 geditとPlumaがファイル内のユーザーの場所に関する情報を共有しない理由がわからない場合は、その理由があります。