我有一个数据集,就像在第一列之间插入一个新的数据列
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
答案 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>
- 您希望每行插入的文字Esc
或ctrl-[
(同义词) - 完成视觉块插入可视块插入也可用于缩进/取消多行,将文本附加到每一行(即使它们不会在同一列上结束)等等。