Perché devi rendere la tua espressione regolare "molto magica" in modo da non dover sfuggire alle virgolette di cattura? E se imposti il tuo ambiente in modo molto magico, non sei standard e potresti avere problemi di conformità. Mi sto solo chiedendo perché Vim usi una sintassi regex diversa da say, perl?Perché VIM ha una propria sintassi regex?
risposta
La maggior parte delle funzioni vi (e quindi vim) sono state derivate da ed. vi e ed entrambi predate perl di almeno una decade o due. Una domanda migliore potrebbe essere "perché Perl non usa la stessa sintassi regex di vi?".
Naturalmente, si potrebbe anche sostenere che il tipo di espressioni regolari che si vorrebbe scrivere all'interno di un editor di testo per eseguire attività comuni sono probabilmente piuttosto diversi da quelli che si potrebbe desiderare di scrivere all'interno di un linguaggio di programmazione.
Vero, ma personalmente, IMO, c'è già troppa frammentazione nello spazio mentale degli sviluppatori. I PCRE sono praticamente uno "standard del settore". Una delle cose che amo di VIM è quante opzioni ha. L'utilizzo di PCRE come motore di ricerca/sostituzione dovrebbe essere almeno consentito come flag ./configure – rossipedia
È un prodotto open source. Se questa è una caratteristica killer per te, perché non implementarla e inviarla come patch? Forse ci sono altri che si sentono allo stesso modo e trarrebbero beneficio da questo. – Gian
@Bryan: la regex di Vim ha un sacco di funzioni non disponibili in PCRE - tutto inizia con '\%' o '\\ _'. –
C'è un plugin chiamato eregex.vim che si traduce da PCRE alla sintassi di Vim. Ci vuole over a thousand lines of vim to achieve that translation!
"Richiede più di mille righe di vim per ottenere quella traduzione!"Ad essere onesti, (attualmente) 279 di quelle righe sono commenti. :-) Ma ancora 803 righe (1082 in totale) di codice! Piuttosto muscoloso. –
- 1. Perché Visual Studio utilizza una sintassi regex così strana
- 2. Perché Direct3D non ha la propria struttura di vertici?
- 3. (g) vim sostituire regex
- 4. evidenziazione sintassi vim assembly
- 5. Vim Regex Sostituire
- 6. vim sostituzione regex
- 7. Ogni utente ha una propria tabella di database?
- 8. sintassi pieghevole vim per scss
- 9. Vim Sintassi Evidenziazione non funziona
- 10. Converti Notepad ++ sintassi di evidenziazione del file su vim (o qualcuno ha file di evidenziazione sintassi aq/kdb + vim?)
- 11. Perl RegEx errore di sintassi
- 12. Sintassi di regex di Haskell
- 13. vim "sintassi on" non funziona
- 14. Evidenziazione della sintassi in vim
- 15. Perché Ruby utilizza la propria sintassi per un operatore di navigazione sicuro?
- 16. Vim pieghevole sulla sintassi per R
- 17. Vim evidenziazione della sintassi per rubino 1.9
- 18. Perché Leiningen mantiene attiva la propria JVM?
- 19. Perché Rust ha bisogno della sintassi `if let`?
- 20. Highligting della sintassi incorporata in Vim
- 21. Come evidenziare le parole che iniziano con @ nella sintassi Vim?
- 22. Vim regex sostituire con n caratteri
- 23. Match foo o bar vim regex
- 24. Rubino controllo della sintassi in vim
- 25. Evidenziazione della sintassi per le espressioni regolari in Vim
- 26. vim folding fa scomparire l'evidenziazione della sintassi
- 27. Vim ha questa funzione Notepad ++?
- 28. Vim: Riavvia sintassi Evidenziazione da linea arbitraria
- 29. JavaScript sintassi regex utilizzando come variabile modello
- 30. VIM .. Yank più righe basate su regex
Sì, e perché quando digito la parola "grande" viene inserita solo la "g"? –
La modalità regex di Trova e sostituisci di Visual Studio è anche non standard, anche se avevano un motore regex standard perfettamente funzionante in .net. Prendi quello che vuoi. – Blindy
@Blindy: non è proprio così semplice. Quando è stato creato l'aroma VS, l'aroma regex .NET non esisteva ancora. Avrebbe potuto basare la sintassi VS direttamente su Perl come faceva il team di .NET, ma hanno scelto di mantenere la continuità con gli strumenti MS precedenti. Non sto difendendo quella scelta, solo sottolineando che non era completamente cerebralmente morto. ;) –