![将 vim-latex 与 Latexmk 和 evince 一起使用会导致乱码文本 (GLib-GObject-CRITICAL)](https://linux22.com/image/54101/%E5%B0%86%20vim-latex%20%E4%B8%8E%20Latexmk%20%E5%92%8C%20evince%20%E4%B8%80%E8%B5%B7%E4%BD%BF%E7%94%A8%E4%BC%9A%E5%AF%BC%E8%87%B4%E4%B9%B1%E7%A0%81%E6%96%87%E6%9C%AC%20(GLib-GObject-CRITICAL).png)
\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 文件更改并重新加载该文件时,会发出它们。
您可以通过将stderr
evince 重定向到 来解决此问题/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