如何格式化文本,使单行不超过N个字符

时间:2013-12-13 21:44:02

标签: linux vim vi

我想知道格式化所选文本的最佳做法是什么,这样每列不会超过N个字符。

例如我在乞讨时有这个文本(注意文本不超过80列):

    aaaaaaa aaaaa aaaaaa aaaaa aaaaaaa aaaaaaaaaaaaaaa aaaaaaaaa aaaaaaaa   
aaaaa aaaaaaa aaaaaa aaaaaaaaa a aaaa aaaaaaaaa aaaaaaa aaaaaaa aaaa                    
aaaaa aaaaaaa aaaaaaaaa aaaaaaaa aaaaaa aaaaaaaa aaaaa a aaaaaaaaaaaaaa                
aaaaaaa aaaa aaaaaaaaaaa aaaaaa aaaaaaaa aaaaaaa aaaaaaaaa aaaaaaaaaa                 
aaaaaa aaaaaaaaaa aaaaaaaaaaaa aaaaa aaaaa aaaaa aaaaaaaa aaaaa aaa aaaaa   

然后突然我不得不改变第一行并且文字如下:

BBBBBB BB B BBB BB BBB BBB BBB BBBB BBBBBBBBBBBB

此类文本将与此类似:

    aaaaaaa aaaaa BBBBBB BB B BBB BB BBB BBB BBB BBBB BBBBBBBBBBBB aaaaaa aaaaa aaaaaaa aaaaaaaaaaaaaaa aaaaaaaaa aaaaaaaa  
aaaaa aaaaaaa aaaaaa aaaaaaaaa a aaaa aaaaaaaaa aaaaaaa aaaaaaa aaaa                      
aaaaa aaaaaaa aaaaaaaaa aaaaaaaa aaaaaa aaaaaaaa aaaaa a aaaaaaaaaaaaaa                 
aaaaaaa aaaa aaaaaaaaaaa aaaaaa aaaaaaaa aaaaaaa aaaaaaaaa aaaaaaaaaa          
aaaaaa aaaaaaaaaa aaaaaaaaaaaa aaaaa aaaaa aaaaa aaaaaaaa aaaaa aaa aaaaa

那么,对文本进行格式设置的最简单方法是将columns限制为80字符?

P.S

我不想手动格式化每一行。

2 个答案:

答案 0 :(得分:2)

See here

基本上,:set tw=80,然后使用gq命令重新格式化预先存在的文本。要自动换行整个文件,请转到第一行并键入gqG(注意大写字母G)。

答案 1 :(得分:1)

请参阅此question

  

将textwidth设置为80,移动到文件的开头(可以使用   Ctrl-Home或gg),然后输入gqG。

     

gqG格式化从当前位置开始到结尾的文本   的文件。它将自动连接连续的行   可能。如果不这样做,可以在两行之间放置一个空行   希望这两者结合在一起。