在vim中我想找到一个字符串并在字符串的每个字符之间插入空格

时间:2015-09-16 04:03:35

标签: regex search vim replace

我一直在尝试以简单的方式搜索和替换正则表达式和捕获组,但不知道如何。

让我们说我想对上一句话进行操作"尝试"并替换为" t y y g"。

:%s/\vtrying{-}/ \1/g

3 个答案:

答案 0 :(得分:4)

只做两场替补比赛。第二个使用带有表达式(\=替换开头的替代{/ 1}}

:h sub-replace-expression

表达式只是在每个单词字符之间插入一个空格。

答案 1 :(得分:4)

你有一个解决方案,但这里有一个不同的解决方案:

 %s/trying/\=join(split(submatch(0),'\zs'), ' ')/g

这应该比substitute()调用快一点,而不是这很重要。

答案 2 :(得分:0)

  

我一直在尝试使用正则表达式和捕获组进行搜索和替换   以一种简单的方式,但不知道如何。

     

让我们说我想对前一句话进行操作   "试图"并替换为" t y y g"。

:g~trying~exe "norm /trying^Mve^[" | s/\%V\(.\)/\1 /g

(CTRL-Q Enter输入^M的位置,^[为CTRL-Q Esc)

  

我一直在搜索和替换正则表达式和捕获   以简单的方式分组,但不知道如何。

     

让我们说我想对前一句话进行操作" t y y   我和#34;并替换为" t y y g"。

注意,我认为这只适用于尝试'在一条线上。

g全局命令与“尝试'在其中,然后运行'执行'正常的'命令跳转到它,目视选择它,然后|将另一个命令与字符和空格分开,该命令用于搜索和替换\%V视觉选择中的任何字符。

它最后还增加了一个空格。

总而言之,它不如@ FDinoff的答案好。