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,}/

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.


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.


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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.