越来越多的vim列

arm*_*ndo 6 vi vim

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

0.98   3.45
2.45   3.90
.
.
.
4.56   8.45
Run Code Online (Sandbox Code Playgroud)

比方说100行.我想得到这样的东西:

1   0.98   3.45
2   2.45   3.90
.
.
.
100 4.56   8.45
Run Code Online (Sandbox Code Playgroud)

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

你有什么建议吗?

谢谢.

Par*_*lor 11

这是另一种仅使用 vim 的普通模式版本。将光标放在第一列第一行上:

<C-v>GI0 <ESC>gvg<C-a>
Run Code Online (Sandbox Code Playgroud)
  • <C-v>视觉块模式 ( :help visual-block)
  • G选择屏幕底部 ( :help G)
  • I:help v_b_I在第 1 行 ( )上启动插入模式
  • 0 输入文字零和文字空格
  • <ESC>回到正常模式
  • gv重新选择最后一个视觉选择(第 1 列的全部)( :help gv)
  • g<C-a>按顺序递增选择中的所有数字 ( :help v_g_CTRL-A)

转这个

0.98   3.45
2.45   3.90
4.56   8.45
Run Code Online (Sandbox Code Playgroud)

进入这个

1 0.98   3.45
2 2.45   3.90
3 4.56   8.45
Run Code Online (Sandbox Code Playgroud)


mhi*_*inz 8

:%s/^/\=printf('%-3d ', line('.'))
Run Code Online (Sandbox Code Playgroud)

更多信息:

:help :s\= 
:help printf()
:help line()
Run Code Online (Sandbox Code Playgroud)