vim 匹配正则表达式中的标记

vim match a mark in regexp

在 gvim (v8) 正则表达式中,我们可以用 \%V, e.g. s/\%Vabc/xyz/ 在 selected 区域中指定一个点。但是,\%V 匹配 selection 中的任何位置,我希望仅在视觉 selection 的开头或结尾匹配某些内容(标记 <,>)。

此外,此正则表达式 /\%V\_.*\%V/ 并非 select 区域的最终字符。 \%V 应该是零宽度?

那么如何指定标记的位置,如:

:s/\mark(<).\zs(abc)\ze\mark.(>)/xyz/`

是的,\%V是零宽度;要包含最后选择的字符,您需要附加一个 . 以包含最后一个字符:/\%V\_.*\%V./

标记位置有特殊原子;您也可以将它们与 '<,'> 标记一起使用:/\%'<.*\%'>./。由于它们也是零宽度的,因此上述内容也适用于此,因此它不是更好的选择。