我想在多行的一列之前插入return,因此我在正常模式下使用 Ctrl + V 选择此列的字符,然后键入{{1 ,Vim进入插入模式。键入 Enter 键后,按键 Esc ,只有一行被破坏。有没有办法执行此功能?感谢。
答案 0 :(得分:6)
要在特定列之前断行,请使用\%v
搜索模式原子
在零宽度的给定位置匹配(参见:help /\%v
)。该
下面的示例命令在第七个和第七个之间插入新行字符
第八列。
:%s/\%8v/\r/
这个想法可以扩展为使用光标所在列的编号 目前位于。
:exe'%s/\%'.virtcol('.').'v/\r/'
上述命令不需要选择这些列。
但是,如果您更容易使用blockwise指定拆分列
可视模式,在所选区域内使用\%V
零宽度原子匹配(参见
:help \%V
)。
:'<,'>s/\%V/\r/
答案 1 :(得分:1)
快速而肮脏的解决方案 - 首先,插入一些不在列中的字符(例如#),然后插入gv
,然后插入'<,'>s/#/\r/g
。
会很高兴。
答案 2 :(得分:0)
选择所需的行后,打破第三列:
:'<,'>g/./norm! 3|a^M
(按^M
或<c-v><CR>
<c-q><CR>
}
,类似于Find every third value and insert cr or newline in VIM上的回答