Regex 如何用vim中的一个单词替换连续的相同单词?

Regex 如何用vim中的一个单词替换连续的相同单词?,regex,vi,Regex,Vi,我想用vim中的一个单词替换连续的相同单词,也就是说只保留一个单词,用kitty替换kitty,用world替换world,等等 为什么我在vim中的正则表达式是错误的 :%s/\<\(\w+\)\>\s\1/\1/g :%s/\\s\1/\1/g 需要在vim正则表达式中转义+ :%s/\<\(\w\+\)\>\s\1/\1/g Magic对vim正则表达式的语法进行了相当大的修改。请务必阅读文档。特别是在较长的元字符ladden正则表达式中,它可以提高长度和可

我想用vim中的一个单词替换连续的相同单词,也就是说只保留一个单词,用
kitty
替换
kitty
,用
world
替换
world
,等等

为什么我在vim中的正则表达式是错误的

:%s/\<\(\w+\)\>\s\1/\1/g  
:%s/\\s\1/\1/g

需要在vim正则表达式中转义
+

:%s/\<\(\w\+\)\>\s\1/\1/g

Magic对vim正则表达式的语法进行了相当大的修改。请务必阅读文档。特别是在较长的元字符ladden正则表达式中,它可以提高长度和可读性。

嘿,在得到原始文本的答案后更改问题并不好。要回答子问题(您可以对我的答案进行注释),可以使用
\(\1\s*\)\+
重复部分匹配。为什么
:%s/\\(\s\+\1\)\+/\1/gc
不能用
kitty
替换
kitty kitty
\(\1\s*\\+/code>不能代表重复部分匹配。
\v\s+(\1\s*)+
对我有效(这正是我推荐的,仅与
\v
匹配)
:%s/\v<(\w+)>\s\1/\1/g