我有一些以前使用“gggqG”在vim中格式化的文本文件。现在我需要将它们转换为每段格式一行。我之前看过一种方法(使用:g命令),但我已经忘记了。有人知道吗?
答案 0 :(得分:13)
我知道有两种方法:
将textwidth设置为大而重新格式化:
:set tw=1000000
gggqG
使用替代(如果您想在映射中执行此操作,则更合适):</ p>
:%s/.\zs\n\ze./ /
后者的解释:
:%s " Search and replace across the whole file
/ " Delimiter
.\zs\n\ze. " Look for a character either side of a new-line (so ignore blank lines).
" The \zs and \ze make the replacement only replace the new-line character.
/ / " Delimiters and replace the new-line with a space.
答案 1 :(得分:2)
如果你的文字段落用空行分隔,这似乎有效:
:g!/^\s*$/normal vipJ
:g
全球(多重复)
!/^\s*$/
匹配除空行以外的所有行和仅包含空格的行。
normal
进入“正常”模式
vip
直观地选择内部段落
J
加入行
答案 2 :(得分:0)
也许你应该将textwidth设置为非常大的值(如99999999)(0因某些原因不起作用)并使用gggqG
?
//我不能告诉你如何用:g
重新格式化你的段落而不确切知道段落是什么。也许其他人可以。