使用gq命令在Vim中自定义LaTeX(beamer)帧的格式

9

我希望可以在Vim中使用gq键组合来格式化我的Beamer LaTeX幻灯片中的文本。

例如,我想使用gqap将以下内容转换为:

\begin{frame}{Some title}
\begin{itemize}\item first point
\item second point
\item etc. point \end{itemize} \end{frame}

将其转化为:

\begin{frame}{Some title}
  \begin{itemize}
    \item first point
    \item second point
    \item etc. point  
   \end{itemize} 
\end{frame}

具体来说,我想遵循以下规则:
  • \item 总是在新行上开始
  • \begin\end 总是开始于新行
  • \begin{frame}\end{frame} 总是从第一列开始
  • 环境内的环境缩进2个空格
  • \item 在其环境内缩进2个空格
因此,我的核心问题是如何实现上述要求。
另外,任何关于起点或有用教程的建议都将非常有帮助。我也会对使用 formatexprformatprg 或内部格式化等进行这样的格式化的相对优点的任何评论感兴趣。

4
@投票关闭的人:长期以来,关于编程工具(尤其是Emacs和Vim)的问题在这里已经被确认为主题 - Konrad Rudolph
2个回答

1

经过一番搜索,我在Tex.SE上找到了类似问题的有用答案。它提供了一个专门用于格式化Context源代码的函数,可以适应LaTeX。

我认为我更喜欢与Vim内置的gq功能集成的东西。而且这个答案仍然需要一点工作来配置LaTeX,我也不确定它提供了什么缩进。无论如何,我想分享一下,以防对其他人有用。


0

为什么不尝试使用snipmate插件呢?

begin<tab>

begin{<cursor>env}                                                                                                                                                                         
    %text                                                                                                                                                                 
\end{env}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接