Vim 重新缩进文件,硬编码一些缩进

Vim 重新缩进文件,硬编码一些缩进

我在使用 vim 重新缩进文件时遇到一些困难(带有gg=G)。

当我有一个较大的文件(不是那么大,可能少于 400 行代码)时,我认为 Vim 无法正确缩进一些行,因为之后行的缩进所依赖的行是上面的很多行(我假设所以,因为我尝试使用较小的块,然后缩进正确完成)。

例子:

\begin{itemize}
        \begin{minipage} %indent +2 (after \begin{itemize})
        \item %indent +1 (after \begin{minipage}) but -1 because it's \item
            %some lines %indent +1
        \end{minipage} %indent -1
\end{itemize} %indent -2 <--- here is the Problem, because here has to be -double indent

现在,如果在这种情况下,处的行%some lines有很多行,那么\end{itemize}不会向左移动两个缩进(这是正确的),而是仅移动一个缩进:/

问题是这会扰乱下面所有行的整个缩进。

我最想要的解决方案是,是否有类似%stopzoneLaTeX 注释的内容来指示语法突出显示以停止当前(数学)区域。

也许类似于%indent -1将行向左移动一个缩进。

有谁知道如何实现这样的东西,或者更好的是,这样的东西已经存在?

或者有其他工具可以比 Vim 更好地完成这种缩进吗?对我来说,从 Vim 获得近似缩进并使用外部终端实用程序使缩进真正正确就足够了吗?

答案1

扫描以查找相应缩进的行数\begin{...}是有限的,但它可以由(不幸的是未记录的)全局变量控制g:tex_max_scan_line,默认为 60。

请参阅变量定义indent/tex.vimVim 运行时一起提供。

您可以将其增加到更适合您自己的 LaTeX 文档的值。例如,将其添加到您的 vimrc 文件中:

let g:tex_max_scan_line = 400

这会将限制增加到 400 行,根据您的帖子,这应该足够了。此更改将对您的性能造成轻微影响,但我预计它应该是可以接受的。

相关内容