以下脚本 - 据我所知 - 采用一系列以.
结尾的句子(以可视模式突出显示),并将它们分隔成不同的行,中间有空格。
vnoremap <C-S-O> :<C-U>s/\.\(\s\+\\|$\)/.\r\r/g<cr>
问题1:如何扩展此脚本以包含以!
和?
结尾的句子?
问题2:如何删除最后产生的两个空行?
问题3:每行如何插入字符“ - []”?
因此,例如,我要求的是一个vim脚本,它将改变以下文本:
这是第1句。这是第2句。这是第3句。
进入以下文字:
- []这是第1句。
- []这是第2句。
- []这是第3句。
这可能吗?
答案 0 :(得分:1)
使用\v
(非常神奇)你不需要这么多\\
。
q1:类似于s/\v([.!?])..../\1\r\r/g
q2:类似于s/\v([.!?])\s+/\1\r\r/g
q3:类似于s/\v([.!?])\s+/\1\r\r-[]/g
(但缺少第一个-[]
)
最后:
:vnoremap <C-S-O> :s/\v([.!?])\s+/\1\r\r-[]/g<CR>`<i-[]<ESC>
决赛的地方:
`<i-[]<ESC>
i
在可视区域的开头插入“-[]
”(“&lt;”