将 vim-latex 与 Latexmk 和 evince 一起使用会导致乱码文本 (GLib-GObject-CRITICAL)

将 vim-latex 与 Latexmk 和 evince 一起使用会导致乱码文本 (GLib-GObject-CRITICAL)

\ll当我使用vim-latex 插件在 vim 中编译 Latex 文件时latexmk,我的 vim 终端文本内容中充斥着错误消息,如下所示:

(evince:10013): GLib-GObject-CRITICAL **: g_object_unref: assertion 'G_IS_OBJECT (object)' failed

在我看来,evince 似乎将其日志输出转储到 vim 窗口中,我可以以某种方式阻止这种情况吗?

解决了 感谢@maxschlepzig,我通过添加let g:Tex_ViewRule_pdf = "evince 2>/dev/null"到我的~/.vimrc.

答案1

这些信息来自明显的地方。当 evince 检测到 PDF 文件更改并重新加载该文件时,会发出它们。

您可以通过将stderrevince 重定向到 来解决此问题/dev/null。这意味着您可以在 vim-latex 插件源中搜索 evince 调用并替换类似的内容

evince <OPTS> <INPUT>

和:

evince <OPTS> <INPUT> 2>/dev/null

PATH或者,当使用 vim-latex 插件运行 vim 时,您可以在 - 中放置一个小包装脚本。例如这样的事情:

$ mkdir -p ~/local/bin
$ cat ~/local/bin/evince
#!/bin/sh
exec /usr/bin/evince "$@" 2>/dev/null
$ chmod 755 ~/local/bin/evince
$ PATH=$HOME/local/bin:$PATH vim some_latex_file

答案2

在某些场合。evince将错误消息打印到/dev/stdout.我加

>> /dev/null

到明显的命令行。我有

$pdf_previewer = 'evince %S >/dev/null 2>/dev/null';

在我的~/.latexmkrc文件中获得干净的输出latexmk

相关内容