2015-02-12 13 views
5

Geben Sie diese in einer Datei:Vim positiver Lookbehind Bug?

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 

Hello 
A 

Hello 
B 

Und dann diese / mit suchen:

\(Hello\n\)\@<=A 

Auf meiner Version von Vim (7.4, inklusive Patches: 1-582), die A unter Hello ist wie erwartet abgestimmt, B ist nicht, aber auch die 446. A auf der ersten Zeile ist abgestimmt.

Es gibt auch etwas seltsames Verhalten mit diesem, wenn ich die Linie mit mehr A s länger mache, wird der 632. A hervorgehoben. Wenn ich am Anfang der Zeile 16 Leerzeichen einfüge, werden das 447ste und das 632ste Zeichen in der Zeile abgeglichen.

Meine Frage ist, betrifft dies irgendjemand anderen, und ist es wirklich ein Fehler oder ist meine Suche falsch?

Antwort

4

Ja, das sieht wie ein Fehler aus. Ich kann mit Vim 7.4.608, aber nur mit der Standard-:set regexpengine=0 automatische Auswahl reproduzieren.

Um das Problem zu vermeiden, können Sie entweder die globale Option ändern können, oder explizit einen Motor innerhalb des Musters angeben:

\%#=1\(Hello\n\)\@<=A 
\%#=2\(Hello\n\)\@<=A 

Bitte diesen Fehler melden, entweder auf die vim_dev mailing list oder its issue tracker.

+0

Ich habe es gemeldet, Ihr Vorschlag funktioniert so muss es eine einfache Lösung sein, es ist etwas falsch mit der automatischen Regexp-Engine-Selektor – texasflood

+0

Haben Sie dies an die Mailing-Liste gesendet? Ich habe deinen Beitrag noch nicht gesehen. –

+0

Ich habe es jetzt gesendet – texasflood