捕获组后寄存器的vim替换
:s[Substitution]函数的意外行为 给定文件:捕获组后寄存器的vim替换,vim,Vim,:s[Substitution]函数的意外行为 给定文件: dog cat cow 和填充寄存器“a”: let @a='fish' 执行以下命令: :%s/\(cat\)/\1\=@a/g 将文件修改为: dog cat=@a cow 我期望输出为: dog catfish cow 在:s函数中是否需要对捕获组符号或寄存器符号进行某种封装/分隔,以便它们在相邻时按预期工作?您可以使用Ctrl+R插入a寄存器的内容 :%s/cat/&<C-R>a/g :%s/ca
dog
cat
cow
和填充寄存器“a”:
let @a='fish'
执行以下命令:
:%s/\(cat\)/\1\=@a/g
将文件修改为:
dog
cat=@a
cow
我期望输出为:
dog
catfish
cow
在:s函数中是否需要对捕获组符号或寄存器符号进行某种封装/分隔,以便它们在相邻时按预期工作?您可以使用Ctrl+R插入a
寄存器的内容
:%s/cat/&<C-R>a/g
:%s/cat/&a/g
您可以使用Ctrl+R插入寄存器的内容
:%s/cat/&<C-R>a/g
:%s/cat/&a/g
\=
必须在更换零件开始时提供
错:
:s/cat/&\=@a <-- cat\=@a
:s/cat/&\=@a\=
必须位于更换零件的开头
错:
:s/cat/&\=@a <-- cat\=@a
:s/cat/&\=@a这是“寄存器”,不是“缓冲区”。这是“寄存器”,不是“缓冲区”。谢谢!我在这里找到了我认为您所指的帮助::help:s\=
和:help sub replace-\=
也称为sub replace special和sub replace expression谢谢!我找到了我认为您在这里引用的帮助::help:s\=
和:help sub replace-\=
分别称为sub replace特殊表达式和sub replace表达式