vim错误格式中的文件名很长

时间:2013-06-28 12:18:04

标签: vim latex pdflatex errorformat

我一直在为LaTeX使用LaTeXBox插件进行错误格式化,我已经认识到了一个我无法解决的问题。

LaTeX生成相对结构化的日志文件,其中类似Lisp的paranthesis语法用于解析的文件,例如:

(/path/to/some/file.xxx ...)

首先,这看起来像一个简单的问题,我们可以使用%P/%O/%Q指令与%r%f来解析文件名。对于简单的.tex文件和项目,这很有效。但是,在某些情况下,行可能会在文件名完成之前中断。例如,我们可能会得到这样的结果:

) (/some/file/with/long/file/name.sty) (/some/file/with/even/longer/fi
le/name.sty (...
))

上面的大部分输出都可以正确解析,但是,如上所示,其中一条路径已被破坏且无法解析。只有一个这样的错误就足以打破文件堆栈,从而导致错误地解析日志文件。

问题可以用更一般的方式说明:我想使用errorformat来解析跨越行的文件名:

/path/to/some/
file.txt

我正在寻找这个问题的解决方案,或者使用更多的vim魔法(也许我错过了一个很好的errorformat选项?),或者可能有latexpdflatex的一些选项。任何解决方案都表示赞赏。

1 个答案:

答案 0 :(得分:1)

我想我找到了一个很好的解决方案。显然,可以使用max_print_line=<number>来设置乳胶日志输出的换行。因此,如果发出latex命令:

max_print_line=2000 pdflatex <filename>.tex

文件名被跨行破坏的问题可能会被解决,因为在它们达到2000列之前不会破坏行。

我首先通过this SO answer找到了这个解决方案。

因此,总结一下:我认为如果使用%P/%O/%Q,那么用%r%f解析文件名的max_print_line指令应该有效。

注意:这是max_print_line,而不是max_print_lines。