Vim 逃逸反斜杠膏

Vim 逃逸反斜杠膏,vim,escaping,backslash,Vim,Escaping,Backslash,我在vim中有以下文本: Hello, \/Good\/Bye. 现在我想将其更改为: Hello, -Good-Bye. 所以我用:视觉选择,拉线。然后 %s/<Ctrl+R>+"/-/gc %s/+“/-/gc 当我按下CTRL+R+“时,行克隆到搜索中,但是\/将不起作用。我需要将其更改为\\/。是否有一个快速功能或按键来自动转义字符?请让我知道。谢谢大家! 正如phd在评论中所写,您可以使用\V和escape()来执行此操作。例如,编写以下函数: function!

我在vim中有以下文本:

Hello, \/Good\/Bye.
现在我想将其更改为:

Hello, -Good-Bye.
所以我用:视觉选择,拉线。然后

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

当我按下
CTRL+R+“
时,行克隆到搜索中,但是
\/
将不起作用。我需要将其更改为
\\/
。是否有一个快速功能或按键来自动转义字符?请让我知道。谢谢大家!

正如phd在评论中所写,您可以使用
\V
escape()
来执行此操作。例如,编写以下函数:

function! Regesc(text)
    return '\V' . escape(a:text, '/\')
endf
然后在拖动一些文本后,按如下方式使用:

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

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


:%s/\VHello,\\\/再见。/-/gc
您可以在视觉选择后使用另一个分隔符

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

\\ ......... scaped backslash
\%V ........ visual selection area
:'禁用所有魔法。转义元字符。