Latex/VIM:更改所有$$..$$要\开始{等式}\结束{方程}

Latex/VIM:更改所有$$..$$要\开始{等式}\结束{方程},vim,latex,vim-plugin,pdflatex,latex-environment,Vim,Latex,Vim Plugin,Pdflatex,Latex Environment,我收到了一个100页的Latex文档,其中包含$$…$$之间的所有方程式,我需要将它们全部更改为\begin{equation}…\end{equation} 在Latex(一些内置功能)或Vim中是否有一些聪明的方法可以做到这一点 在维姆,我在想 或者:用dbf替换abc的方法,其中所有字母代表模式 或者:将所有$$替换为\begin{equation},然后每秒将\begin{equation}替换为\end{equation} 不过,我也不知道如何做到这一点 :%s/\$\$\(\_.\{

我收到了一个100页的Latex文档,其中包含
$$…$$
之间的所有方程式,我需要将它们全部更改为
\begin{equation}…\end{equation}

在Latex(一些内置功能)或Vim中是否有一些聪明的方法可以做到这一点

在维姆,我在想

或者:用
dbf
替换
abc
的方法,其中所有字母代表模式

或者:将所有
$$
替换为
\begin{equation}
,然后每秒将
\begin{equation}
替换为
\end{equation}

不过,我也不知道如何做到这一点

:%s/\$\$\(\_.\{-}\)\$\$/\\begin{equation}\1\\end{equation}/g
它搜索
$
,然后搜索所有(
),包括换行符(
\\\\\\\\
),非贪婪(
\{-}
),然后是另一个
$
。在右边部分,
\1
表示“放回参考”编号1,即左边的第一个
\(…\)


这适用于单行或多行上的方程式。

使用Vim:

使用录音(
:help q
),例如
qe

  • 转到要更改的第一个
    $
  • 替换为
    \begin{equation}
  • 搜索下一个
    $$
  • 替换为
    \end{equation}
  • 搜索下一个
    $$
  • 停止录音
在我的示例中,使用
@
@e
重新应用录制。

@
进行计数,请参见
:help@

是否每行只有一个等式,而没有跨越多行的等式?如果没有,rkta的解决方案可能是您最好的选择。@rkta我知道如何使用宏,谢谢。我已经使用了宏建议。然而,这是我一直在寻找的答案,供将来使用。谢谢。