vim regex nie musi \ uciekać

17

W vim czy istnieje możliwość, aby napisać regexs w tym samym stylu jak AWK Do przykładów

/sp\{0,\}/
Byłoby

/sp{0,}/

MageProspero
źródło

Odpowiedzi:

29

Poprzedzający swój wzorzec z \vuczyni wzór „magiczne” i symboli jak {i [mieć interpretować sens (i literały należy uciekł).

Więc /\vsp{1,}znajdę to, czego chciałeś (właśnie to przetestowałem).

Można zrobić to rodzaj domyślnie przez manipulowanie /się /\vz następujących linii w swojej vimrc:

nnoremap / /\v
vnoremap / /\v

Zobacz :help patternwięcej.

Edd Steel
źródło
1

/sp\{0,}

Oczywiście {0,}, lepiej byłoby użyć *: /sp*byłoby (tak samo jak powyżej) znaleźć „s”, po którym następuje zero lub więcej p. Zauważ, że zero lub więcej jest zawsze prawdziwe, więc nie ma tego powodu w tym konkretnym wyrażeniu.

Kevin
źródło
To wszystko było dobre i bardzo przydatne. Czy istnieje sposób na odwrócenie ucieczki od znaków specjalnych w vimie?
MageProspero
Rozumiem teraz, co masz na myśli. Poważnie w to wątpię, że prawie na pewno wymagałby innego analizatora składni opracowanego równolegle i wątpię, aby był to element o wystarczającym popycie uzasadniającym tę dodatkową implementację i konserwację.
Kevin
-1

Vim nie ma opcji emulacji wyrażeń regularnych w stylu awk, nie. Istnieje wiele dialektów wyrażeń regularnych i niestety zawsze istnieją te małe różnice dialektyczne, które należy śledzić, przechodząc z jednego narzędzia do drugiego.

MetaEd
źródło