我知道有一些方法可以在vim中使用set textwidth自动设置文本的宽度(就像vim 80的列布局问题)。我要找的是类似于=(缩进行命令)的东西,但要将其换行到80。用例是有时你用textwidth编辑文本,在加入行或删除/添加文本后,它出来的包装很差。
理想情况下,这个命令将完全重新组织我选择的行,并删除长行,同时添加短行。一个例子:
long line is long!
short
运行命令后(假设wrap是13 cols):
long line is
long! short
如果这是不可能与一个真正的vim命令,也许有一个命令行程序,这是我可以管道输入?
经过搜索,我找到了这个参考,它有更多的选项:http://www.cs.swarthmore.edu/help/vim/reformatting.html
如果您正在寻找一种非vim的方式,总是可以使用UNIX命令fmt和par。
注:
我不能评论Unicode,它的行为可能不同,也可能不同。
@nelstrom已经在他的网络直播中提到了使用par。
下面是我们如何使用这两个例子。
$ echo -e 'long line is long!\nshort' > 3033423.txt
$ cat 3033423.txt
long line is long!
short
$ fmt -w 13 3033423.txt
long line is
long! short
$ par 13gr 3033423.txt
long line is
long! short
在Vim内部使用:
:%! fmt -w 13
:%! par 13gr
您还可以将:formatprg设置为par或fmt并覆盖gq。有关更多信息,请在Vim中调用:help formatprg。
如果您正在寻找一种非vim的方式,总是可以使用UNIX命令fmt和par。
注:
我不能评论Unicode,它的行为可能不同,也可能不同。
@nelstrom已经在他的网络直播中提到了使用par。
下面是我们如何使用这两个例子。
$ echo -e 'long line is long!\nshort' > 3033423.txt
$ cat 3033423.txt
long line is long!
short
$ fmt -w 13 3033423.txt
long line is
long! short
$ par 13gr 3033423.txt
long line is
long! short
在Vim内部使用:
:%! fmt -w 13
:%! par 13gr
您还可以将:formatprg设置为par或fmt并覆盖gq。有关更多信息,请在Vim中调用:help formatprg。