Vim中如何将选中内容全局替换?当前方法仅替换选中实例
解决Vim中全局替换选中内容的问题
要全局替换文件中所有和选中内容相同的文本,你可以按以下步骤操作:
- 用v模式选中目标文本(比如
foo) - 按下
:进入命令行模式,此时会自动出现'<,'>(选中范围标记),直接忽略它继续输入 - 输入
%s/<C-r>"/bar/g,这里的<C-r>"是按下Ctrl+r再按",作用是把刚才选中的文本粘贴到命令行中 - 回车执行,即可替换整个文件内所有匹配的内容
如果选中的文本包含正则元字符(比如.、*这类),想要把它们当作普通字符处理,可以用\V开启非常nomagic模式,命令改为:
%s/\V<C-r>"/bar/g
你之前用的%s/\%V/bar/g之所以只替换选中的那一处,是因为\%V是用来匹配选中区域内的位置,而不是匹配选中的文本内容,所以只会替换选中区域里的那个实例。
内容的提问来源于stack exchange,提问作者ergonaut
相关产品推荐
相关产品推荐

