Aby dopasować słowo, można użyć
\v(\w+)
Z pomocy vima :h \w
:
\ w znak słowny: [0-9A-Za-z_]
Działa to dokładnie tak, jak opisano w instrukcji. Chcę jednak dopasować słowa zawierające znaki poza a-z
, np
. Prästgården . Dopasowanie wyrażenia regularnego \v(\w+)
do
prästgården daje zamiast tego trzy dopasowania:
prästgården
^^ ^^^ ^^^^
Jak dopasować słowa zawierające znaki poza nimi a-z
? Moje ustawienia regionalne są ustawione na angielski i jeśli to możliwe, chciałbym, żeby tak było.
Edycja: słowa mogą nie należeć do jednego ustawienia narodowego, np
prästgården
treść
\p{Word}
zamiast klasy znaków POSIX. Istnieje wiele wyjątków w obsłudze klasy znaków POSIX w Perlu, których można uniknąć, gdy zamiast tego używa się właściwości Unicode.
[[:alpha:]]\+
W tym przypadku) powinny robić to, co chcesz tutaj, ale zgodnie z Vim docs (:help regex
) nie działa: „Te elementy działają tylko dla znaków 8-bitowych”. Zdarza się, że działa tutaj z Vimem 7.3 na OS X 10.8, ale Vim 7.3 na Linuksie nie działa, więc zakładam, że jest coś specyficznego dla Apple w tym Vimie, który na to pozwala. Przekonasz się również, że robienie tego przez wiązanie Vima Perla również kończy się niepowodzeniem, mimo że Perl ma bardzo dobrą obsługę Unicode. Konieczne może być przejście na zewnętrzny skrypt Perla, aby można było włączyć pełną obsługę Unicode.