如何在vim中每80个字符后插入一个换行符?

如何在vim中每80个字符后插入一个换行符?,vim,Vim,我在vim中有一长串的角色。我想在80个字符后插入一个换行符。我该怎么做 :%s/.\{80}/&\r/g %:处理整个文件 s:替补 :匹配任何字符 {80}:前一个字符(在本例中为任意字符)每出现80次就匹配一次 &:比赛结果 \r:换行符 g:在全球范围内进行更换 使用正则表达式: :%s/\(.\{80\}\)/\1\r/g 使用递归Vim宏: qqqqq79la<Enter><esc>@qq@q qqq Clear contents in r

我在vim中有一长串的角色。我想在80个字符后插入一个换行符。我该怎么做

:%s/.\{80}/&\r/g
  • %:处理整个文件
  • s:替补
  • :匹配任何字符
  • {80}:前一个字符(在本例中为任意字符)每出现80次就匹配一次
  • &:比赛结果
  • \r:换行符
  • g:在全球范围内进行更换

使用正则表达式:

:%s/\(.\{80\}\)/\1\r/g
使用递归Vim宏:

qqqqq79la<Enter><esc>@qq@q


qqq  Clear contents in register q.
qq   start marco in register q
79la<Enter> Carriage return after 80 characters.
<esc> go back to normal mode
 @q   run macro q which we are about to create now.
 q   complete recording macro
 @q run macro
qqqqq79la@qq@q
QQ寄存器q中的清除内容。
qq在寄存器q中启动marco
79la在80个字符后返回。
返回正常模式
@运行我们现在要创建的宏q。
q完整记录宏
@q运行宏

您也可以修改此批准答案,仅在第80个字符后的第一个空格处插入换行符:

%s/\(.\{80\}.\{-}\s\)/\1\r/g

一个警告:如果您的目标是换行太长,则上述命令将添加新行字符,即使该行正好是80个字符。要避免这种行为,您需要排除这种情况:
:%s/\{80}\($\)\@/&\r/g
我只想在第80个字符后的第一个空格处插入一个换行符。这可以说是一个重复的换行符,表明
set textwidth=80
gqq
可以做到这一点。可能是