如何在 vim 中的特定行插入文本?

how to insert text at specific lines in vim?

我想将光标放在特定的行上:

AAA
BBB
CCC

我知道如何使用 CTRL_VSHIFT_I 编辑这三行,但我的问题是如何编辑第一行和最后一行并省略第二行,即:

test_AAA
BBB
test_CCC

提前致谢。

Vim 没有 built-in“多光标”功能。如果您想以普通方式进行操作,可以使用 :help .:

" cursor is on first A
> AAA
  BBB
  CCC

" do itest_<Esc>
> test_AAA
  BBB
  CCC

" move the cursor to CCC
  test_AAA
  BBB
> CCC

" press .
  test_AAA
  BBB
> test_CCC

还是万能的:help :global,也就是de-facto操作non-contiguous行的方法:

:g/^AA|^CC/s/^/test_

还有很多其他方法。

或者您可以要求您最喜欢的引擎帮助您找到复制该功能的几个插件:“vim 多个游标”。

您可以使用反向全局命令:

:v/^BBB/norm Itest_

说明:

普通全局命令使用“g”而不是“v”来反转搜索,因此,对于不以 BBB 开头的每一行,使用普通命令“I”(插入)