通常我会处理看起来像这样的文件:
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的列文件,然后选择该块和 将其粘贴到包含两列的文件中。因为行数是 几乎总是不同我的方法似乎很慢。
你有什么建议吗?
感谢。
答案 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
是您的朋友。假设您要从1
到n
生成:
在vim中用n
行创建文件。
运行:%!nl
。
现在,您可以使用<C-v>
选择数字列并将其复制到其他位置。