Vim 跳转到不同字符的下一次出现

Vim 跳转到不同字符的下一次出现,vim,Vim,我有一些latex表,需要一些标题格式: \begin{tabular}{|l|l|l|} \hline Foo bar bla & blabar & sdf \\ \hline [table content] \end{tablular} 其中第一行中的所有项目都应获得\textbf{}标记 \begin{tabular}{|l|l|l|} \hline \textbf{Foo bar bla} & \textbf{blabar} & \textbf{sdf}

我有一些latex表,需要一些标题格式:

\begin{tabular}{|l|l|l|}
\hline
Foo bar bla & blabar & sdf \\
\hline
[table content]
\end{tablular}
其中第一行中的所有项目都应获得
\textbf{}
标记

\begin{tabular}{|l|l|l|}
\hline
\textbf{Foo bar bla} & \textbf{blabar} & \textbf{sdf} \\
\hline
[table content]
\end{tablular}
我的宏如下所示:

^
qq
i
\textbf{<ESC>
f&
h
i
}<ESC>
ww
q
2@q
^
qq
我
\textbf{
f&
H
我
}
栈单
Q
2@q
关于最后一项,我没有得到结束括号,因为没有更多的
&
。如何使用vim跳转到下一次出现的
&
\

而不是:

f&
您可以执行以下搜索:

/\v [&\\]
这将使您在
&
\
之前的空间着陆,准备就绪:

i}

\v
表示“非常神奇”,允许我们保存一些
\

您可以使用
:s
而不是宏:

s/\(.*\)\\\\/\='\\textbf{' . substitute(submatch(1),'&','} & \\textbf{','g') . "}\\\\"/

这需要用户知道他/她应该重放宏多少次(计数为“&或\`”)。否则它可能会影响其他行。@kent,原则上你是对的,但是OP使用宏包装单个“项”,并执行它
n次。你的答案更一般(因此,可能更好),但我相信我的答案更具主题性。