在vim中,如何使用argdo追加/插入文本?

时间:2009-06-23 16:07:57

标签: vim insert append vi

有“:a”命令,但这是多行的,argdo再次要求你为每个文件提供文本。

文档提到了全局命令(g / pat / command),它将使用替换版本的“:a”,它由换行符而不是“。”终止。在一行(您可以通过“\”转义它们来包含换行符)。但我无法让它发挥作用。

我看到的唯一方法是首先将要添加的文本添加到命名寄存器中,然后使用:

:argdo put x                 " where x is the register

我希望像

这样的东西
:argdo append myTextHere

3 个答案:

答案 0 :(得分:4)

我不清楚你在哪里尝试将文本插入缓冲区。如果你想在当前行之后:

:argdo exe 'normal osometext'

在其中插入包含换行符的文字:

:argdo exe "normal osometext\<CR>anewline"

答案 1 :(得分:2)

在第10行之后追加文字:

:argdo call append(10, "hello world")

将文字附加到第10行:

:argdo call setline(10, getline(10)."textappended")

答案 2 :(得分:1)

在vim中缓存文本会将其放在默认缓冲区中,即"。您可以在插入模式下粘贴该缓冲区,例如键入<C-R>"。所以你需要的只是argdo put "