我正在尝试用vim编辑器中的斜杠替换字符串
ex:foo to abc/def/foo
。有什么建议?
答案 0 :(得分:1)
问题的标题和内容不符。
:help pattern
和:help :substitute
有点压倒性,但非常有用,因为正则表达式是Vim的核心。
Vim regular Expressions 101是一种更简洁的资源。
无论如何,给出以下示例文本:
bar baz foo baz bar
您的目标可以通过多种方式实现。以下是其中一些:
:s/foo/\/abc\/def\/foo
:s/foo/\/abc\/def\/&
:s+foo+/abc/def/&
一些注意事项:
在替换部分中,&
代表“匹配的文字”。如果匹配为foo
,则&
为foo
。当然,在这里使用&
而不是foo
没什么好处,但要等到你有一个更复杂的模式......
因为斜杠用于分隔搜索部分和替换部分,所以您需要转义两个部分中的实际斜杠才能使替换工作。
您可以使用许多其他符号而不是斜杠来分隔搜索和替换部分。当你知道你需要逃避太多的斜线时,非常非常有用。
答案 1 :(得分:-1)
要在vim中执行字符串替换,必须首先使用视觉或插入模式。然后输入':'以执行vim命令。 vim中的替换命令以'%s'开头。将所有内容放在一起
:%s/thingyouhave/thingyouwant/
在您陈述的示例中,您需要使用反斜杠“\”来转义文件名中的“/”。
:%s/foo/abc\/def\/foo/
另一个有用的方法是将'gc'放在表达式的末尾;这将在执行每个更改之前提示您进行验证。如果您想要更改表达式的某些实例或不确定您正在执行的操作是否正确,这将非常有用。
:%s/foo/abc\/def\/foo/gc