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 nnoremappré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 gnpour 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 ndans nnoremap) est sélectionné - malgré le fait que le nnoremapmot entier est mis en surbrillance avec :hlsearchactivé.
Cependant, si je lance plutôt la recherche
/\_s\@<=nnoremap
puis essayez gn, l'ensemble nnoremapest correctement sélectionné. Que pourrait-il se passer ici? Ai-je (oserais-je dire) découvrir un bug obscur?
:h patternsque c'est dedans mais ma mémoire suggère que les regex sont composées d'atomes, si cela aide à expliquer la différence.