Vim逃脱反斜杠贴

时间:2018-06-18 18:07:42

标签: vim escaping backslash

我在vim中有以下文字:

Hello, \/Good\/Bye.

现在我想将其更改为:

Hello, -Good-Bye.

所以我使用:Visual Select,Yank the Line。然后

%s/<Ctrl+R>+"/-/gc

当我将CTRL+R+"行克隆到搜索中时,但\/将不起作用。我需要将其更改为\\/。是否有快速功能或按键自动逃避字符?请告诉我。谢谢!

2 个答案:

答案 0 :(得分:0)

正如phd在评论中所写,您可以使用\Vescape()来做到这一点。例如,编写以下函数:

function! Regesc(text)
    return '\V' . escape(a:text, '/\')
endf

然后在拉一些文本之后,像这样使用它:

:%s/ Ctrl + R =Regesc(@@) CR /-/gc CR

这将显示并运行以下命令,具体取决于您要删除的内容:

:%s/\VHello, \\\/Good\\\/Bye./-/gc

答案 1 :(得分:0)

视觉选择后,您可以使用另一个定界符

:'<,'>s,\%V\\/\%V,-,gc

\\ ......... scaped backslash
\%V ........ visual selection area

因此您必须将模式\\/放在视觉分隔符内