Ich möchte reguläre Perl-Ausdrücke in der vim-Befehlszeile verwenden. Um beispielsweise die Wörter in der aktuellen Zeile in Großbuchstaben zu schreiben, können Sie Folgendes eingeben:
:s/(\w+)/\u$1/g
Ich möchte reguläre Perl-Ausdrücke in der vim-Befehlszeile verwenden. Um beispielsweise die Wörter in der aktuellen Zeile in Großbuchstaben zu schreiben, können Sie Folgendes eingeben:
:s/(\w+)/\u$1/g
Antworten:
Sie können jede Zeile oder jeden Zeilenbereich mit! Durch einen externen Befehl in vim filtern. ZB können Sie tun:
:.!perl -pe "s/(\w+)/\u\1/g"
Dadurch wird die aktuelle Zeile durch diesen Perl-Befehl gefiltert. (Hier :
gelangen Sie in den Befehlszeilenmodus. Die .
folgenden Angaben beziehen sich auf die aktuelle Zeile. Sie können auch einen Zeilenbereich oder %
die gesamte Datei usw. angeben .)
Wenn Sie die in vim eingebauten Ersetzungsmuster verwenden möchten, sollten Sie die "sehr magische" Option \ v von vim wie folgt verwenden:
:s/\v(\w+)/\u\1/g
Siehe :help pattern
und :help substitute
für weitere Details. Ich denke nicht, dass "sehr magisch" mit Perls Mustern identisch ist, aber es ist sehr nah. Wie auch immer, Sie können Perl immer selbst verwenden, wenn Sie sich damit besser auskennen, wie oben.
(
was besonders behandelt wird, solange {
nicht: "Alle ASCII - Zeichen außer '0' - '9', 'a' - 'z', 'A' - 'Z' und '_' haben eine besondere Bedeutung. " Vielen Dank!
Nein, Sie können auf diese Weise keine regulären Perl-Ausdrücke verwenden. Hilfe zum Erlernen der Vim-Entsprechungen für Perl-Komponenten für reguläre Ausdrücke finden Sie unter
:help perl-patterns
Sie können Perl jedoch als externen Filter verwenden, wie von frabjous erläutert. Sie können Perl-Befehle in Vim auch über die Perl-Oberfläche ausführen, wenn Ihr Vim mit dieser +perl
Funktion kompiliert wurde . Sehen
:help if_perl.txt
:help perl-patterns
hat die eine Sache gelöst, die ich zuvor über vim hasste
Sie können auch verwenden:
/\v"your regex"
anstatt:
/"your regex"
nnoremap / /\v
und vnoremap / /\v
zu Ihrer .vimrc-Datei hinzufügen , damit sie bei der Eingabe /
funktioniert.
Hier ist eine Lösung von http://vim.wikia.com/wiki/Perl_compatible_regular_expressions
:perldo s/(\w+)/\u$1/g
(Verify mit , :ver
dass +perl
oder +perl/dyn
kompiliert in.)
Verwenden Sie das eregex.vim- Plugin. Es ist sehr nützlich und ich hatte keine Probleme damit.