在vim中自动削减反斜杠

Hem*_*ava 5 regex vim csh

我们可以在csh或vim中编写函数/子例程吗?

基本上,我的问题是如何自动削减字符串中的反斜杠,我们在vim中用于搜索.

让我们说:

文件file_a的内容是:

abcd
a/b/c/d
Run Code Online (Sandbox Code Playgroud)

现在,如果我在命令模式下使用"/ abcd"在vim中搜索'abcd',它将匹配abcd(第一行).如果我搜索'a/b/c/d',它将不匹配整个'a/b/c/d'.它只匹配'a/b/c/d'中的'a'.

要匹配整个'a/b/c/d',我需要搜索a\/b\/c\/d.每次要搜索其中包含反斜杠的字符串时,削减反斜杠是一种痛苦.:)

你们有谁早点解决了这个问题吗?

Ama*_*dan 5

在Vim:

您可以向后搜索,其中分离器是?不是/,所以/并不需要进行转义:?a/b/c/d; 使用,向下移动到下一场比赛N.

或者您可以使用:let @/="a/b/c/d"(这不会移动光标)设置搜索模式,然后用于n进行下一个匹配.

您还可以定义自己的命令:

function! FindSlashed(arg)
  let @/=a:arg
  norm n
endfunction
command! -nargs=1 S call FindSlashed(<q-args>)
Run Code Online (Sandbox Code Playgroud)

您可以这样使用:

:S a/b/c/d
Run Code Online (Sandbox Code Playgroud)

编辑:let不是set.

  • 当然这是一个调整.使用搜索的目的是逃避斜杠. (3认同)