如何在 vimscript 中将范围扩展为列表?
我想自动获取视觉上选择的文本块,例如 51-100
,并将其扩展为 51,52,53,...,99,100
。
在 vimscript 中有一个简单的方法可以做到这一点吗?
I'd like to automatically take a visually selected block of text, such as51-100
, and have it expanded into 51,52,53,...,99,100
.
Is there an easy way to do this in vimscript?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
让我提出以下实施方案。
如果通过范围表示法保证周围没有空格
数字,
ExpandRange()
的第二条语句可以通过使用来简化split()
函数,请注意,表示范围的文本被放入未命名的寄存器中。如果它
最好保持寄存器不变,修改
ExpandRange()
保存事前恢复其状态。
Let me propose the following implementation.
If it is guaranteed by the range notation that there is no whitespace around
numbers, the second statement of
ExpandRange()
can be simplified by usingthe
split()
function,Note that the text denoting a range is put into the unnamed register. If it
is preferable to leave the register untouched, modify
ExpandRange()
to saveits state beforehand and restore it afterwards.