Voici ce que j'obtiens de la documentation: \zs
"démarre la partie en surbrillance" après avoir trouvé l'expression rationnelle précédente, et \@<=
"démarre la partie en surbrillance" après avoir trouvé l' atome précédent . Mais je ne comprends pas exactement les subtilités de cela, alors quelqu'un peut-il expliquer en quoi elles diffèrent un peu plus en profondeur?
C'est ce qui m'a rendu curieux: si je cours
/\_s\zsnnoremap
c'est-à-dire sélectionner nnoremap
précédé d'un espace ou d'un début de ligne (c'est-à-dire la nouvelle ligne de la ligne précédente, donc la \_
précédente de la s
), puis exécuter gn
pour passer en mode visuel et sélectionner visuellement la correspondance suivante, pour une raison quelconque, uniquement la première colonne (c'est-à-dire le premier n
dans nnoremap
) est sélectionné - malgré le fait que le nnoremap
mot entier est mis en surbrillance avec :hlsearch
activé.
Cependant, si je lance plutôt la recherche
/\_s\@<=nnoremap
puis essayez gn
, l'ensemble nnoremap
est correctement sélectionné. Que pourrait-il se passer ici? Ai-je (oserais-je dire) découvrir un bug obscur?
:h patterns
que c'est dedans mais ma mémoire suggère que les regex sont composées d'atomes, si cela aide à expliquer la différence.