![为什么我无法在 gedit 中打开某个文件](https://linux22.com/image/1345027/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E6%97%A0%E6%B3%95%E5%9C%A8%20gedit%20%E4%B8%AD%E6%89%93%E5%BC%80%E6%9F%90%E4%B8%AA%E6%96%87%E4%BB%B6.png)
我编辑了 gedit 的一个语言文件(语法高亮),然后 – 为了测试更改 – 将打开的文件的语言更改为另一种语言,然后改回原样。我这样做了几次,但最后一次,gedit 崩溃了(并导致 rsyslogd 在此过程中崩溃)。
我尝试重新打开文件,但 gedit 立即崩溃。以下是我尝试的方法:
由于我更改了语法高亮,因此我尝试打开具有相同扩展名的文件。
成功了。我尝试从文件中删除可能受更改影响的行。
如果文件为空,则可行,但如果我留下哪怕一个字符,则不可行。我尝试重命名文件以防 gedit “记住”了有关它的某些内容。
但没用。我尝试使用 Nautilus 复制文件并打开新文件。
没有用。我尝试将文件内容复制粘贴到另一个文件中,然后打开新文件。
成功了。我尝试从命令行复制文件并打开新文件。
成功了。
有什么想法可能造成这种情况以及如何正确修复它?
答案1
添加标签后,类似的问题出现在有关的标签(相同问题,不同原因,和用户雷南评论中建议从终端运行 gedit 并查找错误消息。
输出结果如下:
**
GtkSourceView:ERROR:gtksourcecontextengine.c:5421:update_syntax: assertion failed: (state->context != NULL)
Aborted (core dumped)
这是由于gedit 中的一个错误将语言设置为时触发默认值。由于此选择已保存在GnomeVFS,即使在 Nautilus 中复制文件也无济于事,因为它保留了元数据。
为了解决这个问题,正如错误报告中指出的那样,我执行了以下命令:
gvfs-set-attribute FILENAME metadata::gedit-language ''
解决了。