如何在Vim的列中重写文本?

时间:2014-04-07 20:19:34

标签: vim

我有以列为导向的文本格式:

TR #  DATE        DESCRIPTION                  PROGRAMMER
----- ----------- ---------------------------  -----------
12345 01-APR-2014 This is an April Fool's      Joe Sewell
                  joke. Not!

现在我想扩大DESCRIPTION列并将该列重新重新填充到新宽度。让我们说,为了这个问题,我会自己添加这些空格,看起来更像是这样:

TR #  DATE        DESCRIPTION                        PROGRAMMER
----- ----------- ---------------------------------  -----------
12345 01-APR-2014 This is an April Fool's            Joe Sewell
                  joke. Not!

现在我需要帮助。我想在DESCRIPTION列上执行可视块选择(在gvim中使用CTRL-V或CTRL-Q)并执行ex命令或映射以将文本重新包装到选定的宽度,从而生成:

TR #  DATE        DESCRIPTION                        PROGRAMMER
----- ----------- ---------------------------------  -----------
12345 01-APR-2014 This is an April Fool's joke.      Joe Sewell
                  Not!

如果需要,我可以处理具有尾随空格的后续行。我希望受影响的选定行上的其他文本的。 (熟悉OpenVMS下的EVE的人,相当于阻止选择一大块文本,并使用EDT键盘输入GOLD-8。)我希望缩进更改。

2 个答案:

答案 0 :(得分:4)

我的FormatToWidth plugin提供<Leader>gq命令,您可以使用该命令实现此目的: enter image description here

答案 1 :(得分:1)

您是否考虑过将DESCRIPTION列移动到另一个缓冲区,为该缓冲区设置所需的textwidth(:set textwidth=yournumber),使用gq格式化,然后移回原始位置?