自动斜线 vim 中的反斜杠
Automatically slash the backslashes in vim
我们可以在 csh 或 vim 中写 functions/subroutines 吗?
基本上,我的问题是如何在 vim.
中用于搜索的字符串中自动斜线反斜杠
假设:
文件 file_a 的内容是:
abcd
a/b/c/d
现在,如果我在命令模式下使用“/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
。每当您想搜索其中包含反斜杠的字符串时,削减反斜杠是一件很痛苦的事情。 :)
你们中有人早些时候解决过这个问题吗?
在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>)
你可以这样使用:
:S a/b/c/d
编辑:let
,而不是 set
。
这不是关于搜索而是关于替换。我认为您在编写函数时可能会发现这很有用
您可以使用 alternate delimiters 进行替换命令。即,您可以使用 #
而不是使用 /
:s#a/b/c/d#this text will replace#
以上命令会将a/b/c/d
替换为this text will replace
我们可以在 csh 或 vim 中写 functions/subroutines 吗?
基本上,我的问题是如何在 vim.
中用于搜索的字符串中自动斜线反斜杠假设:
文件 file_a 的内容是:
abcd
a/b/c/d
现在,如果我在命令模式下使用“/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
。每当您想搜索其中包含反斜杠的字符串时,削减反斜杠是一件很痛苦的事情。 :)
你们中有人早些时候解决过这个问题吗?
在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>)
你可以这样使用:
:S a/b/c/d
编辑:let
,而不是 set
。
这不是关于搜索而是关于替换。我认为您在编写函数时可能会发现这很有用
您可以使用 alternate delimiters 进行替换命令。即,您可以使用 #
/
:s#a/b/c/d#this text will replace#
以上命令会将a/b/c/d
替换为this text will replace