解决方法
让我提出以下实施方案.
vnoremap <silent> <leader># :<c-u>call ExpandRange()<cr> function! ExpandRange() norm! gvy let n = matchlist(@",'\(\d\+\)\s*-\s*\(\d\+\)')[1:2] if len(n) != 2 || +n[0] > +n[1] return end exe 'norm! gvc' . join(range(n[0],n[1]),',') endfunction
如果范围符号保证周围没有空格
数字,ExpandRange()的第二个语句可以通过使用简化
split()函数,
let n = split(@",'-')
请注意,表示范围的文本将放入未命名的寄存器中.如果它
最好保持寄存器不变,修改ExpandRange()以保存
其状态事先并在之后恢复.
function! ExpandRange() let [qr,qt] = [getreg('"'),getregtype('"')] norm! gvy let n = matchlist(@",'\(\d\+\)\s*-\s*\(\d\+\)')[1:2] call setreg('"',qr,qt) if len(n) != 2 || +n[0] > +n[1] return end exe 'norm! gv"_c' . join(range(n[0],') endfunction
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。