如何让Vi插入一列字符?

时间:2015-12-04 05:17:56

标签: vi macvim

如果我有以下代码,其中点(。)是空格,

....def foobar():
........foo = x
........bar = y

如何让Vim在每行的同一列中插入一个磅(#)和一个空格,如下所示:

....#.def foobar():
....#.....foo = x
....#.....bar = y

我知道我可以按^ v进入列插入模式然后我可以点击" j"键两次以选择同一列中的以下两行,但我读过的所有文章都说你应该点击"我"键进入插入模式。但是,当我这样做时,我只进入第一行的插入模式,而不是所有三行。我错过了什么?顺便说一下,我不想计算空格并做一个替换命令。我知道我能做到。必须有一个更简单的方法。

感谢。

2 个答案:

答案 0 :(得分:0)

:1-3s/^.../^...#./

从第1行到第3行(根据你自己的目的进行调整),将行开头的三个空格替换为(s命令)三个空格,一个#和一个额外的空格。

答案 1 :(得分:0)

你在那里尝试的每一个命令都会修改实际的行,或者一组执行命令的行(如其他答案所示)。

另一种方式可能是替代,例如:

:map z / .... M4s ......#[

(M是CTRL-V M来表示输入,[是CTRL-V Escape,以结束替换)

映射'z'后,您可以在所需的每一行按'z'。