Folgendes erhalte ich aus der Dokumentation: \zs
"Startet den hervorgehobenen Teil" nach dem Abgleichen des vorhergehenden regulären Ausdrucks und \@<=
"Startet den hervorgehobenen Teil" nach dem Abgleichen des vorhergehenden Atoms . Aber ich verstehe die Feinheiten nicht genau. Kann jemand erklären, wie sie sich etwas tiefer unterscheiden?
Das hat mich neugierig gemacht: Wenn ich renne
/\_s\zsnnoremap
dh wählt nnoremap
voraus durch ein Leerzeichen oder ein Start-of-line (dh die Neue - Zeile von der vorhergehenden Zeile, damit die \_
vor der s
) und führte gn
Visual Mode einzugeben und visuell auswählen das nächste Spiel, aus irgendeinem Grunde nur die erste Spalte (dh Das erste n
in nnoremap
) wird ausgewählt - trotz der Tatsache, dass das gesamte nnoremap
Wort mit aktiviert markiert ist :hlsearch
.
Allerdings, wenn ich stattdessen die Suche starte
/\_s\@<=nnoremap
und dann versuchen gn
, das Ganze nnoremap
ist richtig ausgewählt. Was könnte hier los sein? Habe ich (wage ich zu sagen) einen obskuren Fehler entdeckt?
:h patterns
aber mein Gedächtnis legt nahe, dass Regexs aus Atomen bestehen, wenn dies hilft, den Unterschied zu erklären.