我正在尝试在 vim 编辑器中用斜杠替换字符串
例如:foo to abc/def/foo
。有什么建议么?
您的问题的标题和内容不匹配。
: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>
因为斜线用于分隔搜索部分和替换部分,所以您需要转义两个部分中的实际斜线以使替换工作。
您可以使用许多其他符号代替斜线来分隔搜索和替换部分。当您知道需要避开太多斜线时,这非常有用。
要在 vim 中进行字符串替换,您必须首先退出可视或插入模式。然后输入 ':' 来执行 vim 命令。vim 中的替换命令以 '%s' 开头。把你拥有的所有东西放在一起
:%s/thingyouhave/thingyouwant/
在您陈述的示例中,您需要使用反斜杠“\”转义文件名中的“/”。
:%s/foo/abc\/def\/foo/
另一个有用的地方是将“gc”放在表达式的末尾;这将在执行每个更改之前提示您进行验证。如果您想更改表达式的某些实例或不确定您所做的是否正确,这将很有用。
:%s/foo/abc\/def\/foo/gc