-4

我正在尝试在 vim 编辑器中用斜杠替换字符串

例如:foo to abc/def/foo。有什么建议么?

4

2 回答 2

1

您的问题的标题和内容不匹配。

:help pattern并且:help :substitute有点压倒性但非常有用,因为正则表达式是 Vim 的核心。

Vim 正则表达式 101是一个更简洁的资源。

无论如何,给定以下示例文本:

bar baz foo baz bar

您的目标可以通过多种方式实现。这里是其中的一些:

:s/foo/\/abc\/def\/foo
:s/foo/\/abc\/def\/&
:s+foo+/abc/def/&

几点注意事项:

  • 在替换部分,&代表“匹配的文本”。如果匹配是foo&foo。当然在这里使用&over并没有太大的好处foo,但是等到你有一个更复杂的模式......</p>

  • 因为斜线用于分隔搜索部分和替换部分,所以您需要转义两个部分中的实际斜线以使替换工作。

  • 您可以使用许多其他符号代替斜线来分隔搜索和替换部分。当您知道需要避开太多斜线时,这非常有用。

于 2012-11-13T07:41:50.173 回答
0

要在 vim 中进行字符串替换,您必须首先退出可视或插入模式。然后输入 ':' 来执行 vim 命令。vim 中的替换命令以 '%s' 开头。把你拥有的所有东西放在一起

:%s/thingyouhave/thingyouwant/

在您陈述的示例中,您需要使用反斜杠“\”转义文件名中的“/”。

:%s/foo/abc\/def\/foo/

另一个有用的地方是将“gc”放在表达式的末尾;这将在执行每个更改之前提示您进行验证。如果您想更改表达式的某些实例或不确定您所做的是否正确,这将很有用。

:%s/foo/abc\/def\/foo/gc
于 2012-11-13T08:41:49.653 回答