如何在vim中将一条非常长的行分成64行的小行?

时间:2017-11-10 02:50:21

标签: vim vi macvim

我有一个很长的字符集,大约1000个字符长,没有任何空格。我可以在vim中将它们整齐地分成64个字符的行。例如,

我想转换一个这样的字符串:

MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDOgwPQvZf9l3WYA/+eMcjz+v/1aWrebfpVLCOMDPN/mvWpG5cufxirk9nmX1yqzeYoIyrXsJ2MfCLdidf3nZ6wmBkKXq8dk51fG7+NzuG15UWtsZSp4z2fbVMWhulcUtj39zXCPCqFqk/St+Gc2SKZOOLi6TuvlsJAPGVS+shJJXeCZPBRiqEQhXZE7zsVrKFCM2tFZp1RLE9TWB+LNYOYg6/KES+iVwjqY4CcVqKMA6frUC/7N/Q9U7pvJbZiMRh4ScdnyEzJMvcIJcItt/0piZCZyOaVIv15RVOG4b9E0BMgEEtOvVgD+tLqKus/fdWz/hdtyVjDIlc5mzQnl98TAgMBAAECggEBAJnWpZ/5rOD/1F0jFWgOZEnEgKqcFj2Opf6O/AgXmclEcZ7Ba/T6PzGJ2bgw8AJZkgvybrbw3dzKmNp6FkViyNV66KR99mvNDF3OePs105TCMA79i+am3sAGG/BbHjpliTXnlceVNIQQZJhv3QUQCCMmanZpEspyP1DE7SJMqak6hh+irTx9n1Z+Eh8ma3hZ0vTpy5w96eWOk2NRGOMrUikEMApsBxI1W4HkrG3WI0MlWnLLv/DyGbIwiqp3Q2l39vKO/S5K3A8NVOuHbOvqHrP96g3a4srozu34tzXIcghxwECNx5mpouw4/lo53Ybo8JiNcU8s8fEmY6ufLaL0BlkCgYEA7y3Y6yIWPN04sK9jPZ/8hc6XzpelmFkc6d7kRDxTv3dWsWZAgos8a2zsKBmVFXJ7Aq2aNx+nmGPnYxr24Mu65NDfrd+rki4HxTqO0tkL9KI66y4F+yd796tkdqkLSyu5u9eci6hNaGeaJaX3es3Mq0J2i9hQ793XWXyv6mRh3dUCgYEA3QkHbhwd6KuE0AtI6P1e9dBn7DQip8VuJjY78qbFAMVEwJsn/aBL5CbzScCiIs8/wsx30LgbLPmPbVd0kfjrb9/eLKdej6EyZkLgrIUKBxSpg1f86TTCz0F3RUEiGBPtvFpJHfMVFjXGktUAyBvJyDTZjSSq79h7IPb3j+lNdUcCgYBGGLK1HrVTuyXtKkm0etngQU7eXjVK8/r0U72kfeWxfIEs1qHbYIEhnreLfQvjUDza6RQEScOtdsIOmo12Dl9Exi5339CBs/nVBLds9e16Eb2gxUk9dTHwwQtdd2d27WautZ8MkxO0oIBdvklMdVohawYhMBFwaxy8/jz0Pd0szQKBgEZ0jFPCzp3NnmYaUsFBkjVUmuulqq5DtlqjyvQLyJv4RXQHgPXNVKOC7uXBa20hFrfnKQH0zWTGn7tAtz2YVKOyfkVJjFDIFyKVirwzJAEhyu686zcCxF4ABh6jJlT6dTsmpEvRohUUSxmen8MpaGZSwk3FNF+DZ6wYTM0olrIdAoGBAKMc/LEIxgqwpFIzxIsFj4lSaGwIWFimMSq/9gd9R60/gncaBearSXrNwVBHPqfZBFnGeLTiddD7F/x/LbcPip+Hj0/PFphAxWfPfgLrTl2cGf4975mJbny11WjD+WucpB3YsXoOjo+z4rX0g4JmRuM0XDFy/ef11BMMQ2wjBZ54

为:

MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDOgwPQvZf9l3WY
A/+eMcjz+v/1aWrebfpVLCOMDPN/mvWpG5cufxirk9nmX1yqzeYoIyrXsJ2MfCL
didf3nZ6wmBkKXq8dk51fG7+NzuG15UWtsZSp4z2fbVMWhulcUtj39zXCPCqFqk
/St+Gc2SKZOOLi6TuvlsJAPGVS+shJJXeCZPBRiqEQhXZE7zsVrKFCM2tFZp1RL
E9TWB+LNYOYg6/KES+iVwjqY4CcVqKMA6frUC/7N/Q9U7pvJbZiMRh4ScdnyEzJ
MvcIJcItt/0piZCZyOaVIv15RVOG4b9E0BMgEEtOvVgD+tLqKus/fdWz/hdtyVj
DIlc5mzQnl98TAgMBAAECggEBAJnWpZ/5rOD/1F0jFWgOZEnEgKqcFj2Opf6O/A
gXmclEcZ7Ba/T6PzGJ2bgw8AJZkgvybrbw3dzKmNp6FkViyNV66KR99mvNDF3Oe
Ps105TCMA79i+am3sAGG/BbHjpliTXnlceVNIQQZJhv3QUQCCMmanZpEspyP1DE
7SJMqak6hh+irTx9n1Z+Eh8ma3hZ0vTpy5w96eWOk2NRGOMrUikEMApsBxI1W4H
krG3WI0MlWnLLv/DyGbIwiqp3Q2l39vKO/S5K3A8NVOuHbOvqHrP96g3a4srozu
34tzXIcghxwECNx5mpouw4/lo53Ybo8JiNcU8s8fEmY6ufLaL0BlkCgYEA7y3Y6
yIWPN04sK9jPZ/8hc6XzpelmFkc6d7kRDxTv3dWsWZAgos8a2zsKBmVFXJ7Aq2a
Nx+nmGPnYxr24Mu65NDfrd+rki4HxTqO0tkL9KI66y4F+yd796tkdqkLSyu5u9e
ci6hNaGeaJaX3es3Mq0J2i9hQ793XWXyv6mRh3dUCgYEA3QkHbhwd6KuE0AtI6P
1e9dBn7DQip8VuJjY78qbFAMVEwJsn/aBL5CbzScCiIs8/wsx30LgbLPmPbVd0k
fjrb9/eLKdej6EyZkLgrIUKBxSpg1f86TTCz0F3RUEiGBPtvFpJHfMVFjXGktUA
yBvJyDTZjSSq79h7IPb3j+lNdUcCgYBGGLK1HrVTuyXtKkm0etngQU7eXjVK8/r
0U72kfeWxfIEs1qHbYIEhnreLfQvjUDza6RQEScOtdsIOmo12Dl9Exi5339CBs/
nVBLds9e16Eb2gxUk9dTHwwQtdd2d27WautZ8MkxO0oIBdvklMdVohawYhMBFwa
xy8/jz0Pd0szQKBgEZ0jFPCzp3NnmYaUsFBkjVUmuulqq5DtlqjyvQLyJv4RXQH
gPXNVKOC7uXBa20hFrfnKQH0zWTGn7tAtz2YVKOyfkVJjFDIFyKVirwzJAEhyu6
86zcCxF4ABh6jJlT6dTsmpEvRohUUSxmen8MpaGZSwk3FNF+DZ6wYTM0olrIdAo
GBAKMc/LEIxgqwpFIzxIsFj4lSaGwIWFimMSq/9gd9R60/gncaBearSXrNwVBHP
qfZBFnGeLTiddD7F/x/LbcPip+Hj0/PFphAxWfPfgLrTl2cGf4975mJbny11WjD
+WucpB3YsXoOjo+z4rX0g4JmRuM0XDFy/ef11BMMQ2wjBZ54

感谢阅读。

3 个答案:

答案 0 :(得分:4)

Qa64l<enter>q16@a:w

这将记录一个宏,在别名a下向右移动64次后按Enter键,并将运行该宏16次并保存文件。应该做你想问的事。

答案 1 :(得分:4)

如果调用外部命令没问题,可以使用fold命令:

fold -w64 file

要在vim中应用命令,您可以直观地选择字符串,然后:

:'<,'>!fold -w64 %

或者将命令应用于当前行:

:.!fold -w64 %

如果没有外部命令,这可能有效:

:.s#.\{64\}#&\r#g

从手册页:

  

替换中出现的&符号(&)将替换为与RE匹配的字符串

答案 2 :(得分:3)

:set textwidth=64
gqgq
:set textwidth=0

它将限制设置为最大行长度,重新调整当前行,并将限制返回到默认值(我假设您使用默认值)