Um ein Wort zu finden, kann man verwenden
\v(\w+)
Aus der Vim-Hilfe :h \w
:
\ w Wortzeichen: [0-9A-Za-z_]
Dies funktioniert genau wie im Handbuch beschrieben. Ich möchte jedoch Wörter finden, die darüber hinausgehende Zeichen enthalten a-z
, z . B.
prästgården . Die Übereinstimmung des regulären Ausdrucks \v(\w+)
mit
prästgården ergibt stattdessen drei Übereinstimmungen:
prästgården
^^ ^^^ ^^^^
Wie werden Wörter verglichen, die darüber hinausgehende Zeichen enthalten a-z
? Mein Gebietsschema ist Englisch, und wenn möglich, möchte ich es so lassen.
Bearbeiten: Die Wörter gehören möglicherweise nicht zu einem einzelnen Gebietsschema, z
prästgården
treść
\p{Word}
anstelle einer POSIX-Zeichenklasse verwenden. Es gibt viele Ausnahmefälle in der POSIX-Zeichenklassenbehandlung von Perl, die Sie vermeiden, wenn Sie stattdessen Unicode-Eigenschaften verwenden.
[[:alpha:]]\+
in diesem Fall) sollen hier tun, was Sie wollen, laut Vim docs (:help regex
) jedoch nicht: "Diese Elemente funktionieren nur für 8-Bit-Zeichen." Hier funktioniert es zwar mit Vim 7.3 unter OS X 10.8, aber Vim 7.3 unter Linux funktioniert nicht. Ich gehe also davon aus, dass dieses Vim etwas Apple-spezifisches hat, das es zulässt. Sie werden auch feststellen, dass die Ausführung über die Vim-Perl-Bindung ebenfalls fehlschlägt, obwohl Perl sehr gute Unicode-Unterstützung bietet. Möglicherweise müssen Sie zu einem externen Perl-Skript wechseln, damit Sie die vollständige Unicode-Unterstützung aktivieren können.