2010-08-30 10 views
41

Dlaczego musisz zrobić "bardzo magiczną" wypowiedź, aby nie musieć uciekać od cytatów z przechwytywania? A jeśli ustawisz swoje środowisko na bardzo magiczne, jesteś niestandardowy i mogą mieć problemy ze zgodnością. Zastanawiam się tylko, dlaczego vim używa innej składni regex niż powiedz, perl?Dlaczego VIM ma własną składnia wyrażeń regularnych?

+23

Tak, i dlaczego po wpisaniu słowa "duży" wstawiane jest tylko "g"? –

+1

Program Visual Studio do znajdowania i zastępowania trybu regex jest również niestandardowy, mimo że posiadał doskonale dobry standardowy silnik regex w .net. Odbierz to, co chcesz. – Blindy

+1

@Bindy: To nie jest takie proste. Kiedy został stworzony smak VS, smak regex .NET jeszcze nie istniał. Mogłoby to opierać składnię VS bezpośrednio na Perlu, tak jak robił to zespół .NET, ale zdecydowali się zachować ciągłość z wcześniejszymi narzędziami MS. Nie bronię tego wyboru, tylko wskazuję, że nie był całkowicie martwy mózg. ;) –

Odpowiedz

47

Większość funkcji vi (a tym samym vim) pochodzi od wyd. vi i ed zarówno przedwcześnie perl przez co najmniej dekadę lub dwie. Lepszym pytaniem może być "dlaczego Perl nie używa tej samej składni regex jak vi?".

Oczywiście można również argumentować, że rodzaje wyrażeń regularnych, które chcielibyśmy napisać w edytorze tekstu w celu wykonywania typowych zadań, prawdopodobnie różnią się nieco od tych, które można napisać w języku programowania.

+23

To prawda, ale osobiście, IMO, w przestrzeni dla programistów jest już zbyt wiele fragmentacji. PCRE są prawie "standardem branżowym". Jedną z rzeczy, które kocham w VIM, jest to, ile ma opcji. Używanie PCRE jako mechanizmu wyszukiwania/zamiany powinno być co najmniej dozwolone jako flaga ./configure – rossipedia

+5

To produkt typu open source. Jeśli jest to dla ciebie funkcja zabójcy, dlaczego nie wdrożyć go i nie przesłać jako poprawki? Być może są inni, którzy czują to samo i na tym skorzystają. – Gian

+2

@Bryan: regex Vima ma mnóstwo funkcji niedostępnych w PCRE - wszystko zaczyna się od '\%' lub '\\ _'. –

6

Istnieje wtyczka o nazwie eregex.vim, która tłumaczy z PCRE na składnię Vima. Zajmuje over a thousand lines of vim to achieve that translation!

+2

"Aby uzyskać to tłumaczenie, potrzeba ponad tysiąca linii vima!"Aby być uczciwym, (obecnie) 279 z tych linii to komentarze. :-) Ale wciąż 803 linie (łącznie 1082) kodu! Całkiem dopracowany. –

Powiązane problemy