如何在一列之前换行?
我想在多行的一列之前插入 return,所以我在正常模式下使用 Ctrl+V 选择这一列的字符,然后输入 I,Vim 进入插入模式。输入Enter键后,按Esc键,只有一行被断开。有什么办法可以实现这个功能吗?谢谢。
I want to insert return before one column of multiple lines, so I select the characters of this column with Ctrl+V in normal mode, then type I
, Vim enters insert mode. After typing Enter key, and press key Esc, only one line is broken. Is there any way to perform this function? Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
要在特定列之前换行,请使用
\%v
搜索模式原子以零宽度匹配给定位置(请参阅
:help /\%v
)。这以下示例命令在第七个和
第八列。
这个想法可以扩展到使用光标所在的列号
目前位于。
上面的命令不需要选择这两列。
但是,如果您更容易使用 blockwise 指定拆分列
可视模式,在选定区域内使用
\%V
零宽度原子匹配(请参阅<代码>:帮助\%V)。
To break lines just before a particular column, use
\%v
search pattern atomthat matches in a given position with zero-width (see
:help /\%v
). Thefollowing example command inserts new line character between the seventh and
the eighth columns.
This idea could be extended to use the number of the column where the cursor
is currently located.
The commands above does not require neither of those columns to be selected.
However, if it is easier for you to specify the split column with blockwise
Visual mode, use
\%V
zero-width atom matching inside the selected area (see:help \%V
).快速而肮脏的解决方案 - 首先,插入一些不在列中的字符(例如 #),然后插入
gv
,然后插入'<,'>s/#/\r/ g
。如果有人提供更聪明的解决方案,我会很高兴。
quick and dirty solution - first, insert some character which is not in column (say, #) , then,
gv
, then'<,'>s/#/\r/g
.will be glad if one provide more clever solution.
选择所需的行后,要在第三列上中断:(
通过按<
或插入
)^M
CR>,类似于 查找每第三个值并插入 cr 或VIM 中的换行符
After selecting the desired lines, to break on third column:
(
^M
inserted by pressing<c-v><CR>
or<c-q><CR>
), similar to answer on Find every third value and insert cr or newline in VIM