我创建了一个函数来搜索自定义数量的空行(带或不带空格),并用新的(自定义)空行数替换它们。
fun! s:AddRemoveNumbEmptyLines()
if !exists("emptylinesbefore")
let emptylinesbefore = "How many empty lines do you search? \n (p.e. 2,3 4, ,3)"
endif
let b = inputdialog(emptylinesbefore)
if !exists("emptylinesafter")
let emptylinesafter = "How many empty lines must it be?"
endif
let c = inputdialog(emptylinesafter)
let m = repeat('\r', c)
exe 's/\(^\s*$\n\)\{'.b.'}/'.m.'/gc'
endfun
假设b = 2,(2和更多)AND m = 3
如果vim找到4个空行,则替换为3个空行
(没关系)。
但是当我拒绝替换请求(我使用“c”(确认)标志)时,它在同一个地方找到3个空行并再次询问它是否必须用3个空行替换。当我再次拒绝时,它会在同一个地方找到2个空行并再次询问是否要进行替换。
如何避免这些多次替换请求(在同一个地方)? 希望我明白自己:)
答案 0 :(得分:0)
My new exe = 's/^.*\S\+.*\n\zs\(^\s*$\n\)\{'.b.'}\ze\s*\S\+/'.m.'/gc