在 vim 中不成对的括号会破坏缩进

在 vim 中不成对的括号会破坏缩进

看起来 latex-suite 在没有闭合括号的情况下自动缩进是错误的,例如下面的 $[0,1)$ 就是问题的原因:

\begin{equation}
    f(x),\quad x\in[0,1)
\end{equation}

将缩进至

\begin{equation}
    f(x),\quad x\in[0,1)
    \end{equation}

有办法解决吗?(如果我用 $[0,1]$ 替换 $[0,1)$,那么缩进就会再次起作用)。

更新 我只安装了一个插件,即vim-latexlatex-suite(这是旧名称吗?)。过了一会儿,我发现问题是由以下行引起的vim-latex\indent\tex.vim

    if g:tex_indent_brace
  " Add a 'shiftwidth' after a "{" or "[" while there are not "}" and "]"
  " after them. \m for magic
    if line =~ '\m\(\(\[[^\]]*\)\|\({[^}]*\)\)$'
        "let ind = ind + &sw
    endif
  " Remove a 'shiftwidth' after a "}" or "]" while there are not "{" and "["
  " before them. \m for magic
    if cline =~ '\m^\(\([^[]*\]\)\|\([^{]*}\)\)'
        "let ind = ind - &sw
    endif
endif

如您所见,我注释掉了 和 两行if...endif,这将停止{和 的缩进[。我的示例将输出 (do gg = G):

\begin{equation}
    f(x),\quad x\in[0,1)
\end{equation}

但是,它也会搞乱一些东西,例如

\newcommand{set}[1]{%
\left\{#1\right\}%
}

而不是

\newcommand{set}[1]{%
  \left\{#1\right\}%
}

所以,仍然需要一些解决方案来解决这个问题。

相关内容