VIM每行一句:用句号分隔

VIM每行一句:用句号分隔,vim,Vim,我有一个纯文本,我想把每个句子放在自己的一行。我看到了一些Perl的答案,但我只使用Vim 我认为这个问题不太清楚。我看到其他问题的答案很不清楚。。所以让我试试 如果要分隔的句子在一行中,句点仅用于分隔该行,则可以尝试使用以下命令将其拆分: :%s/\./.\r/g ^ ^ (change the dots by the character you want if needed) 这将在缓冲区中全局查找,。将用自身hmm替代它,并将添加一行返回\r 然后,您可能必须使用:%le删除缩进

我有一个纯文本,我想把每个句子放在自己的一行。我看到了一些Perl的答案,但我只使用Vim

我认为这个问题不太清楚。我看到其他问题的答案很不清楚。。所以让我试试

如果要分隔的句子在一行中,句点仅用于分隔该行,则可以尝试使用以下命令将其拆分:

:%s/\./.\r/g ^ ^ (change the dots by the character you want if needed) 这将在缓冲区中全局查找,。将用自身hmm替代它,并将添加一行返回\r

然后,您可能必须使用:%le删除缩进以格式化左侧的行

备注:来自注释%s/\[\.!\?]\/\1\r/gc的Rkta建议似乎也运行良好,可能更好?。Amadam的评论也是相关的


欢迎来到stackoverflow。阅读本页可能有助于你的探索

这些Perl答案可能使用正则表达式,将正则表达式语法转换为Vim应该相对容易。应该为您提供有关语法差异的线索

我想提出一个不同的解决方案,它使用递归宏定义和Vim的句子运动。首先,一次更换:

)hr<CR>

这将在空行处停止,并在句子中保留换行符;您可能需要:首先连接所有行。或者,您也可以调整替换r,可能是更改命令。既然您在问题中没有提到任何详细要求,我就到此为止。

您好,约翰尼,欢迎来到StackOverflow。您的问题目前过于宽泛,无法满足本网站通常接受的格式。请务必检查这一页。然后,请用更具体的信息编辑您的问题,并向我们展示您为解决此问题所做的努力。定义一句话的内容可能会模棱两可,解决方案取决于您需求的复杂性。请举例说明。另外,如果您找到了一个有效的Perl解决方案,请发布它。研究Vim正则表达式也会有所帮助。另外,请注意,分句不仅仅是寻找句点。来自S.H.I.E.L.D.,即V.I.P.的Jack M.Smith教授正在参观纽约州、北卡罗来纳州等地的实验室。您尝试了什么?%S/\[\.!\?]\/\1\r/gc和一杯咖啡谢谢您的帮助。我的基本原理是将科学论文或科学教科书分开,进行注释和编辑,以供我自己阅读。简单地选取一个文本,用句号分隔每个句子,并将其放在自己的换行符上。我们仍然被限制在书籍出版的暴政中,将所有的文本都分成几段是有意义的……古腾堡的古老版式。教科书或科学论文中的每一句话都是一个独立的知识片段。我不想把所有的东西都混在一起看…所以如果结果是一张清单,那就这样吧
qqqqq)hr<CR>@qq@q