特定のファイルをgeditで開けないのはなぜですか

特定のファイルをgeditで開けないのはなぜですか

gedit の言語ファイルの 1 つ (構文の強調表示) を編集し、変更内容をテストするために、開いているファイルの言語を別の言語に変更してから元に戻しました。これを数回実行しましたが、最後の実行では gedit がクラッシュしました (その過程で rsyslogd もクラッシュしました)。

ファイルを再度開こうとしましたが、gedit はすぐにクラッシュします。試したことは次のとおりです。

  • 構文の強調表示を変更したので、同じ拡張子のファイルを開いてみました。
    動作します。

  • 変更によって影響を受ける可能性のある行をファイルから削除してみました。
    ファイルが空の場合は機能しますが、1 文字でも残すと機能しません。

  • gedit がファイルについて何かを「記憶」している場合に備えて、ファイルの名前を変更してみました。
    うまくいきませんでした。

  • Nautilus でファイルをコピーして新しいファイルを開こうとしましたが、
    うまくいきません。

  • ファイルの内容をコピーして別のファイルに貼り付け、新しいファイルを開いてみました。
    うまくいきました。

  • コマンドラインからファイルをコピーして、新しいファイルを開いてみました。
    動作します。

この原因は何だったのか、またこれを適切に修正するにはどうしたらよいのか、何かアイデアはありますか?

答え1

タグを追加した後、同様の質問に登場した関連しているタブ(同じ問題、異なる原因、ユーザーレナンコメントでは、ターミナルから gedit を実行してエラー メッセージを探すことが提案されています。

出力は次のようになります:

**
GtkSourceView:ERROR:gtksourcecontextengine.c:5421:update_syntax: assertion failed: (state->context != NULL)
Aborted (core dumped)

これは、geditのバグ言語を設定するとトリガーされますデフォルトこの選択はグノームVFSただし、Nautilus でファイルをコピーしても、メタデータが保持されるため役に立ちません。

この問題を解決するために、バグレポートに示されているように、次のコマンドを実行しました。

gvfs-set-attribute FILENAME metadata::gedit-language ''

解決しました。

関連情報