越来越多的vim列

时间:2013-08-13 21:52:39

标签: vim vi

通常我会处理看起来像这样的文件:

0.98   3.45
2.45   3.90
.
.
.
4.56   8.45

让我们说100行。我想得到这样的东西:

1   0.98   3.45
2   2.45   3.90
.
.
.
100 4.56   8.45

第一列整数。我通常做的是生成一个 只有数字1,2 ... 100的列文件,然后选择该块和 将其粘贴到包含两列的文件中。因为行数是 几乎总是不同我的方法似乎很慢。

你有什么建议吗?

感谢。

4 个答案:

答案 0 :(得分:7)

:%s/^/\=printf('%-3d ', line('.'))

更多信息:

:help :s\= 
:help printf()
:help line()

答案 1 :(得分:3)

:%!cat -n

是一种快速解决方案。其次是

:%s/^\s*//g

它可以很快地为您提供您想要的东西。

答案 2 :(得分:3)

我发现VisIncr对于类似的操作非常宝贵(对于那些使用Vundle或NeoBundle的人来说,这里是the GitHub version)。该插件“有助于创建一个增加或减少数字,日期或日期名称的列”。添加行号的示例如下:

以可视区块模式选择文件的第一列:

gg<C-v>G

插入一个起始编号(本例中为1)和一个列分隔符(我在这里假设Tab):

I1<Tab><Esc>

重新选择文件的第一列:

gv

运行VisIncr命令以增加数字:

:I<CR>

您可以使用不同的命令对数字进行右对齐:

:II<CR>

增加日期,字母,十六进制和罗马数字同样容易。

答案 3 :(得分:0)

要生成一列顺序号,nl是您的朋友。假设您要从1n生成:

  1. 在vim中用n行创建文件。

  2. 运行:%!nl

现在,您可以使用<C-v>选择数字列并将其复制到其他位置。