可视块插入新行


10

我使用可视块模式进行了大量工作,这对于跨很多行进​​行快速更改非常有用。

但是我正在努力做的事情是像这样插入换行符:

选择记为[]

Some [t]ext
Some [t]ext
Some [t]ext
Some [t]ext
Some [t]ext

我按,I然后可以在之前添加一些文本t

Some other text
Some [t]ext
Some [t]ext
Some [t]ext
Some [t]ext

当我按时,<Esc>我得到以下信息:

Some other text
Some other text
Some other text
Some other text
Some other text

但是现在,如果我按<CR>而不是要添加的文本,则按需插入换行符,但不插入其他行。结果如下:

Some 
text
Some text
Some text
Some text
Some text

您知道为什么这行不通吗?

注意:由于它适用cr我不确定为什么这不起作用...


如果要在所选行的某些字符之后创建新行,则可以尝试使用宏。转到第n列并输入新行,然后重复进行直到选择为止
SibiCoder '16

是的,或者也可以替代,但是我的目的是想出在可视块模式下进行操作的方式。
nobe4

4
不幸的是,这不能在可视块模式下完成。请使用替代或录音。
romainl '16

Answers:


4

视觉块I不能那样工作。您可能会做的最好的事情如下所示。

在可视块模式下突出显示一列([b]在问题中表示突出显示的字符):

aaa[b]bb
aaa[b]bb
aaa[b]bb
aaa[b]bb
cccccc

在视觉区域执行以下替换\%V

:'<,'>s/\%V/\r/

'<,'>当您按时:,Vim会为您插入,因此您无需键入该位。

结果:

aaa
bbb
aaa
bbb
aaa
bbb
aaa
bbb
cccccc

如果您经常需要在可视块处分割线,则很可能会在历史记录中方便地使用它,并且您可能只需要突出显示即可:<up><return>


\%V即使不是我想要的,也可以很好地使用它,我会接受这一点(但是无论如何,我想要的东西似乎都是不可能的^^)
nobe4
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.