在Vim中,可以使用I命令一次插入多行文本,如答案Stack Overflow问题如何在vi/Vim中的多行选择开头插入文本?.但是,这仅适用于实际插入.如果我想同时删除一些字符,这不起作用.
例如,我想改变
000 one
000 two
000 three
000 four
Run Code Online (Sandbox Code Playgroud)
至
111 one
111 two
111 three
000 four
Run Code Online (Sandbox Code Playgroud)
我会这样做,通过调用^V3ggllx从前三行删除000然后^V3ggI111^[将111插入相同的位置,这对我来说似乎很尴尬.(上面的意思是,进入可视块状模式,在前三行中标记所有零并删除它们.然后再次进入可视块状模式,标记前三行的开始,进入多行插入模式,插入111并退出Esc.)
必须有更好的方法来做到这一点.最烦人的事情是我必须在删除零后再次选择该区域.如果在删除后仍然选择了该区域,那就没问题了.此外,如果可以在多个插入模式下删除字符,也可以.但是如果我试试这个,只会改变第一行.
重新选择简单快捷gv; 然后,您可以使用它I111^[来插入新文本.但是,正如@ melpomene的回答所示,这实际上并不是必需的.
(但我想我会提到它,所以你可以在其他情况下应用这些新知识.)