扩展将段落分隔成句子的VIM脚本

时间:2015-09-25 00:09:56

标签: vim

以下脚本 - 据我所知 - 采用一系列以.结尾的句子(以可视模式突出显示),并将它们分隔成不同的行,中间有空格。

vnoremap <C-S-O> :<C-U>s/\.\(\s\+\\|$\)/.\r\r/g<cr>

问题1:如何扩展此脚本以包含以!?结尾的句子?

问题2:如何删除最后产生的两个空行?

问题3:每行如何插入字符“ - []”?

因此,例如,我要求的是一个vim脚本,它将改变以下文本:

  

这是第1句。这是第2句。这是第3句。

进入以下文字:

  

- []这是第1句。

     

- []这是第2句。

     

- []这是第3句。

这可能吗?

1 个答案:

答案 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;”