假设我有一个文件中的字符串列表(例如Python脚本),如下所示:
var stream = Collection.find().stream();
stream.on('data', function (doc) {
console.log(doc.da)
stream.pause()
Record.update({oldcolid: doc.da}, {collectionId: doc._id}, { multi: true }, function (err, raw) {
if(err) {console.log(err)}
console.log(raw)
stream.resume()
})
})
stream.on('error', function (err) {
console.log(err)
})
stream.on('close', function () {
console.log("done")
})
如果我直观地选择了这个文本,我可以使用my_list_of_numbers = ["one two",
"three four",
"five six",
"seven eight",
"nine ten",
"eleven twelve"]
来包装文本:
gq
但是,元素my_list_of_numbers = ["one two", "three four", "five six", "seven eight", "nine
ten", "eleven twelve"]
现在被分成两行。
如何在避免在开放引号内输入换行符时包装文本?我想要的结果如下:
"nine ten"
答案 0 :(得分:1)
我认为没有保留的命令可以做到这一点,但我们可以做到这一点 将它制作成一行然后通过正则表达式,将它打破到你想要的愿望。
%s/\(.\{-}".\{-}".\{-}".\{-}".\{-}".\{-}".\{-}\)"/\1\r"/gec
将整个事物映射到一个键中。这样可以让你轻松。
答案 1 :(得分:0)
请将此脚本保存到文件中并加载到vim中。
vnoremap a d:call Replace(@")<CR>
function! Replace(arg1, ...)
let Var = Myfun(a:arg1)
call append(line('.') - 1, [Var])
silent! %s/@@newline@@/ /g
silent! %s/@!@/\r/g
endfunc
function! Myfun(s)
let Var = a:s
let Var = substitute(Var, '\n', '@@newline@@', 'g')
let Var = substitute(Var, '\s\s*', ' ', 'g')
let Varlength = strlen(substitute(Var, '\(.\{-}\".\{-}\"\,.\{-}\".\{-}\"\,.\{-}\".\{-}\"\,\)', '\1', 'g'))
if Varlength < 120
let Var = substitute(Var, '\(.\{-}\".\{-}\"\,.\{-}\".\{-}\"\,.\{-}\".\{-}\"\,\)', '\1@!@', 'g')
else
let Var = substitute(Var, '\(.\{-}\".\{-}\"\,.\{-}\".\{-}\"\,\)', '\1@!@', 'g')
endif
return Var
endfunc
阻止文字并点击键#34; a&#34;