【发布时间】:2017-08-30 12:03:16
【问题描述】:
我使用 vim(和 vim latex-suite)来编辑乳胶文档。经常发生的事情是需要将内联方程更改为显示方程,如下所示。我开始:
The most important equation is \(f(x)=x^2,\) but most disagree.
并以:
结尾The most important equation is
\begin{equation*}
f(x)=x^2,
\end{equation*}
but most disagree.
将光标放在“=”上,我很高兴调用一个函数来实现结果,并且我大概可以弄清楚如何自己编辑缩进和间距,所以输出就足够了
The most important equation is
\begin{equation*}
f(x)=x^2,
\end{equation*}
but most disagree.
理想情况下,以相反方向工作的函数(显示方程到内联方程)也很好,但首先要做的是。 FWIW,我正在使用surround.vim 插件,它似乎非常适合\(\)中的周围文本,但我不确定它是否可用于检测/突出显示乳胶方程。它似乎对 HTML 标签有这个功能,但我还没有看到它为乳胶实现。任何帮助将不胜感激。
[编辑:]
为了澄清我在寻找什么,我想说的是,surround.vim 是否可用于自定义非对称引号/括号检测。这就是我知道该怎么做。在我的 ~/.vimrc 文件中,我有一行
autocmd FileType tex let b:surround_101 = "\\(\r\\)"
然后当我编辑一个 tex 文件时,我有以下内容:
This is a $word in$ a some text.
[ ]
我可以在普通模式下输入:
cs$e
我得到了
This is a \(word in\) a some text.
[ ]
同样,如果我有
This is a <p>word in</p> a some text.
[ ]
我可以在普通模式下输入:
cste
我得到了
This is a \(word in\) a some text.
[ ]
我想做的就是从这里开始:
This is a \(word in\) a some text.
[ ]
到这里:
This is a \foo word in \bar a some text.
[ ]
我想知道这是否可以通过环绕.vim 实现。例如,关于这个:
This is a \(word in\) a some text.
[ ]
我试过了
cse$
但这并没有像我希望的那样将 \(word in\) 更改为 $word in$。如果这不可能与环绕.vim,那将是一种耻辱,因为它已经具有我想要用于乳胶方程式的 HTML 标记的确切功能,所以看起来我必须为乳胶重新编码相同的功能从头开始的方程。
【问题讨论】:
-
到目前为止你有没有尝试过?通过展示您的尝试并描述您遇到困难的部分,我们可以更好地了解您的熟练程度并给出更准确的答案。就目前而言,看起来您已经发布了一个需求并希望有人为您编写代码。
-
是的,surround.vim 可以做到这一点;查看
:help surround-customizing。环绕声不检测(乳胶方程或其他);您可以通过在ys之后键入相应的replacement 来选择周围的类型。 -
我编辑了我的帖子以澄清我的问题,并举一个我尝试过的例子。