Vim - 插入一列文本/将重复的字符插入多行

时间:2014-08-20 14:58:54

标签: vim

我有一个数据集,就像在第一列之间插入一个新的数据列

     M1    M2   M3   M4
G1    1     2    3    4
G2    4     3    2    1
...
G120  1     3    4    2

我想用vim中的另一列数据修改数据集

     M1    M2   M3   M4
G1    1     1    2    3    4
G2    1     4    3    2    1
...
G120  1     1    3    4    2

2 个答案:

答案 0 :(得分:2)

我假设你使用\ t来对齐你的文字。然后可以使用正则表达式

:%s/^\(G\d\+\)/\1\t1/

答案 1 :(得分:1)

Vim的块状视觉模式ctrl-v可能是最好的方法。

特别是,您应该使用" Visual-block Insert" (vim help::help v_b_I

使用您的示例,将光标置于|1|处于正常模式:

     M1    M2   M3   M4
G1   |1|    2    3    4
G2    4     3    2    1
...
G120  1     3    4    2

执行以下操作:

  • ctrl-v - 启动视觉块顺序选择
  • 3j - 向下延伸选择3行(可以替换此处的任何其他移动命令)
  • I - 开始阻止插入模式
  • 1<space><space><space><space><space> - 您希望每行插入的文字
  • Escctrl-[(同义词) - 完成视觉块插入

可视块插入也可用​​于缩进/取消多行,将文本附加到每一行(即使它们不会在同一列上结束)等等。