:[range]s/{pattern}/{string}/[flags] [count]
For each line in [range] replace a match of {pattern}
with {string}.
The "or" operator in a pattern is "\|". Example:
/foo\|bar
This matches "foo" or "bar". More alternatives can be concatenated:
/one\|two\|three
Matches "one", "two" and "three".
我们可以使用3行的模式/替代文件吗?
一个
2个
3
答案 0 :(得分:1)
以下命令适用于我的系统:
let @a = system('cat repl.vim | tr "\n" "|"') | exe '%s/\v'.@a.'<bs>/x/g'
在这里,我在文件repl.vim
中有一个单词列表。该命令的第一部分使用let
来保存注册表a
中的单词列表,将每个换行符\n
替换为运算符|
。在第二部分exe %s
执行替换。
实际上,如果repl.vim包含:
pattern1 pattern2 pattern3
运行该命令将导致:
%s/\vpattern1|pattern2|pattern3/x/g