当我提取几行并将其粘贴到命令行时,每一个新行都是 ^M
相反 \r
.例如,如果我在可视模式下复制接下来的两行(使用命令 Vjy
):
line1
line2
并使用命令 /<c-r>"
在命令行(搜索)模式下粘贴它我得到:
/line1^Mline2
但我预计:/line1\rline2
我想做的是在我粘贴代码块时突出显示粘贴的字符串,这对我有帮助。 我知道我可以用
选择它`[v`]
但我只想突出显示它,无论如何它可以通过将多行代码粘贴到 ex 中用于替代或其他有趣的事情来使用。
最佳答案
在可视模式下复制下一段:
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
.
关于linux - 多行粘贴 (ctrl-r) 到 ex 或搜索|将 ^M 替换为\r,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50213036/