【发布时间】:2017-05-09 17:57:55
【问题描述】:
我有一个包含这个词的文件:
单词
当我执行这个命令时:
:s/\(\w\)\+/#\1#/
我得到了##,但据我所知\w 匹配一个字符。为什么我在反向引用它时没有得到它?
现在是这个命令
:s/\(\w\)\{1,}/#\1#/ 我得到了#d#。为什么是最后一个字符而不是第一个字符?
VIM - Vi 改进版 7.4 Ubuntu 16.04 LTS
【问题讨论】:
-
@rock321987 什么?你在哪个版本的 vim 上测试过?
-
在 Ubuntu 15.10 上的 vim 7.4 版中,我肯定会得到与 Sabrina 相同的行为(它看起来像是一个错误或 vim 正则表达式引擎的众多“特性”之一......)
-
@DenysSéguret 见
here.. 它似乎工作 -
它适用于我在 vim 7.4 (Windows 7) 上。
-
与@DenysSéguret 不同,我无法在 Ubuntu 15.10 中重现它,但我可以在 16.04 中重现它(7.4,补丁 1-1689,额外补丁 8.0.0056)。绝对看起来像是 Ubuntu 16.04(软件包版本 2:7.4.1689-3ubuntu1.2)的构建中的一个错误。
标签: regex vim vi substitution