使用Vim进行乳胶预编译

时间:2014-02-27 17:13:30

标签: vim compiler-construction editor interpreter tex

我正在寻找预编译文本的方法,即按照一些自定义规则重新格式化它,然后在Vim中用Tex编译它。

例如,我想重新格式化像这样的文本

THM   The sum $1+2+3  is equal to $$[six] 6.
% a comment line
PROOF   $$ 1+2 &= 3 \\ 1+2+3 &= 6

进入这个

\begin{theorem}
The sum $ 1+2+3 $ is equal to
\begin{align}
\label{six}
6.
\end{align}
\end{theorem}
\begin{proof}
\begin{align*}
1+2 &= 3\\
1+2+3 &= 6
\end{align*}
\end{proof}

然后在后者上运行MikTex。

这可以在Vim里面获得吗?

1 个答案:

答案 0 :(得分:1)

预处理

如果要将自定义语法保留在源文件中,并且只是生成Latex语法作为使用Latex编译器进行编译的中间步骤,则必须插入预处理步骤,例如:使用 C预处理器cpp。草图:

:setlocal makeprg=cpp\ -D\ THM='\\begin{theorem}'\ -\ \|\ miktex\ ...

(实际上,您可能会在include文件中外化(很多!)宏定义,而不是在命令行上传递它们。)

片段

另一方面,如果您只想避免键入所有这些长Latex定义,但保留Latex文档作为源,则可以使用片段来加速文档创建和编辑。 片段就像内置的类固醇:abbreviate一样,通常带有参数插入,镜像和内部多个停止。第一个非常着名(并且仍然广泛使用)的Vim插件之一是snipMate(受 TextMate 编辑器的启发);不幸的是,它不再维持;虽然有a fork。现代替代方案(虽然需要Python)是UltiSnips。还有更多内容,请参阅this list on the Vim Tips Wiki