2017-07-26 74 views
4

在gvim(v8)regexp中,我們可以用\%V, e.g. s/\%Vabc/xyz/指定選定區域中的一個點。但是,\%V匹配選區中的任意位置,我希望某些內容僅在視覺選擇開始或結束時匹配(標記爲<,>)。vim在正則表達式中匹配一個標記

此外,此正則表達式/\%V\_.*\%V/不會選擇該區域的最後一個字符。 \%V應該是零寬度?

所以,我怎麼能指定標記的位置,如:

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

回答

2

是的,\%V是零寬度;要包含最後選擇的字符,需要附加.以包含最後一個字符:/\%V\_.*\%V./

標記位置有特殊原子;您也可以使用'<,'>標誌:/\%'<.*\%'>./。因爲它們也是零寬度,所以上面也適用,所以它不是一個更好的選擇。