如何在Vimscript中插入文本

时间:2019-04-01 02:28:40

标签: vim

我在vimscript中有最简单的要求。我已经在Google上搜索了一段时间,例如1 2 3。我只想插入一行文本!

假设我有一个带有行的文件:

teachersListRDD<TeachersList, Iterable<TeachersListItem>> -> {list_details, all_item_details}

e.g {{{list_id:1,name:"abc",quantity:"2"},{{item_id:11,item_name:"abc"},{item_id:12,item_name:"acv"}}},

{{list_id:2,name:"xyz",quantity:"5"},{{item_id:14,item_name:"bnh"},{item_id:18,item_name:"hjk"}}}
}

我只想在行aaa bbb ddd eee 之后添加缺少的行ccc

我有一个vimscript函数的开头:

bbb

缺少的行应该是什么?

请注意,然后我想使用function! addLine() normal /bbb " MISSING LINE wq! endfunction 在一堆文件上调用此脚本。

2 个答案:

答案 0 :(得分:2)

虽然不是vimscript,但您在多个文件中进行搜索和替换任务听起来像是argdo的工作:

:argdo %s/bbb/&\rccc/ge | update  

答案 1 :(得分:1)

使用Vimscript时,我会避免使用builtin functions:normal模式操作,而这些操作会执行相同的操作:

function! AddLine()
    let l:foundline = search("bbb") " Can return 0 on no match
    call append(l:foundline, "ccc")
    wq!
endfunction

search()append()应该比norm /norm o更方便地在函数中使用。