为了账号安全,请及时绑定邮箱和手机立即绑定

多行粘贴(ctrl-r)到ex或用\ r替换^ M

多行粘贴(ctrl-r)到ex或用\ r替换^ M

小怪兽爱吃肉 2021-03-31 09:10:03
当我拖拉几行并将其粘贴到命令行时,每行都^M改为\r。例如,如果我在可视模式下复制下两行(使用命令Vjy):line1line2并使用以下命令将其粘贴到命令行(搜索)模式/<c-r>":/line1^Mline2但我期望: /line1\rline2我想做的是突出显示粘贴的字符串,这对粘贴代码块很有帮助。我知道我可以选择`[v`] 但是我只想突出显示它,并且无论如何它都可以通过将多行代码粘贴到ex中以替代或其他有趣的东西而有用。
查看完整描述

2 回答

?
慕标5832272

TA贡献1966条经验 获得超4个赞

在可视模式下复制下一段:


line1

line2

line3

并将其粘贴到命令行中(带有<c-r>")应为line1^Mline2^Mline3^M。如果希望此文本为line1\rline2\rline3\r您可以定义以下函数并映射:


function! Substitute()                                                          

    silent! let g:p=substitute(@", "\\n", "\\\\r", "g")                         

    call feedkeys(":", 'n')                                                     

endfunction                                                                     

nnoremap <silent> : :call Substitute()<cr>                                      

该命令let g:p=substitute(@", "\\n", "\\\\r", "g")将^M在未命名的寄存器(:help quotequote)中查找所有内容,将其替换为\r,然后将输出字符串存储在中p。要p在命令行中粘贴的内容,请使用<c-r>=p。


查看完整回答
反对 回复 2021-04-16
  • 2 回答
  • 0 关注
  • 239 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信