我从 LaTeX 文档中的以下内容开始:
\begin{align*}
u(x, t) &= \frac a2 \int_0^t \dif s \int_{x-a(t-s)}^{x+a(t-s)} \dif y \sin(\omega y) \\
\end{align*}
然后我继续输入第二行,Vim 对齐了&
,这很整洁。在第一个 之前一切都很顺利}
:
\begin{align*}
u(x, t) &= \frac a2 \int_0^t \dif s \int_{x-a(t-s)}^{x+a(t-s)} \dif y \sin(\omega y) \\
&= \frac{1
\end{align*}
然后我输入它}
执行以下操作:
\begin{align*}
u(x, t) &= \frac a2 \int_0^t \dif s \int_{x-a(t-s)}^{x+a(t-s)} \dif y \sin(\omega y) \\
&= \frac{1}
\end{align*}
每增加一个}
,它就会缩进一点。一段时间后,整个文本align*
就完全无法阅读了。
我怎样才能让 Vim 停止这样做?
答案1
我遇到了同样的问题。gvim 忽略了我在 .vimrc 中的 noautoindent 设置。我用:verbose set ai?
它检查了 .tex 文件中的设置,发现自动缩进是通过 vim-latex 插件启用的。要禁用括号后的缩进,请将以下代码放入 .vimrc(或 .vim/after/ftplugin/tex.vim):
let g:tex_indent_brace=0
如果您不使用 vim-latex,请尝试找出导致缩进的脚本。
答案2
我通过以下方法解决了这个问题:set expandtab
(panos 的解决方法对我来说不起作用)。当文件中混合有制表符和空格时,vim 插件似乎会感到困惑。所以我设置了.vimrc
:
autocmd Filetype tex setlocal expandtab
看http://vim.wikia.com/wiki/Converting_tabs_to_spaces有关 vim 中的制表符和空格的详细信息。
答案3
panos 和 Stephan Kulla 的解决方案对我不起作用。我所采用的方法是创建一个文件 ~/.vim/indent/tex.vim,其中包含一行let b:did_indent = 1
(来自这里)。这将关闭所有文件类型的缩进tex
,包括 LaTeX 文件。