在 vim 中重复一系列编辑

Mar*_*arc 1 vim vi

我有这样的文字:

\n
gradient\ncontinuit\xc3\xa9\ndirection\n
Run Code Online (Sandbox Code Playgroud)\n

我想要这个:

\n
\\donnee{gradient}\n\\donnee{continuit\xc3\xa9}\n\\donnee{direction}\n
Run Code Online (Sandbox Code Playgroud)\n

在视觉模式下,我可以准备序列\\donnee{ ESC
\n然后在下面的每一行中,点击.

\n

但这只会将我的文本更改为\\donnee{gradient
\n 并且我正在搜索类似以下内容的内容:\\donnee{-> 行尾 ->}在我的可重复序列中。

\n

但我无法添加$,能够将插入符号放在行尾, \n因为它涉及通过停止序列记录
返回到视觉模式。ESC

\n

我怎样才能做到这一点?

\n

Sté*_*las 6

我会在你的视觉选择上使用ex-style :s/.*/\\donnee{&}

Ctrl您还可以使用+创建文本的视觉块v,并用于I前置\donnee{A附加(例如,}在重新选择同一块后)。gv

另一种方法是使用以下命令录制宏q

qaI\donnee{<Esc>A}<Esc>jq
Run Code Online (Sandbox Code Playgroud)

将记录一个a宏,该宏会添加\donnee{到该行之前并附加到}该行并向下一行。然后输入@a调用宏,@@重复上一个宏。

对于可能与 重复的内容.,您还可以执行以下操作: ciw更改光标下的单词,然后键入\donnee{Ctrl+ rCtrl+ o", }, Esc