En mode normal Vim, la 0
commande vous amène à la première colonne de la ligne et ^
vous amène au début logique de la ligne (par exemple, le premier caractère non blanc). Dans le monde regex, ^
correspond au premier caractère de la ligne, espace ou non. Vim a-t-il un modèle qui se comporte comme sa commande '^' - correspondant au début logique d'une ligne?
20
Réponses:
Il n'y a pas de raccourci pour faire correspondre le premier caractère non blanc sur une ligne, vous devez créer le motif vous-même, comme:
Si vous ne souhaitez pas inclure l'espace blanc dans votre correspondance, vous devez utiliser une assertion de largeur nulle, comme:
Pas vraiment joli, mais au moins ça fait le boulot.
la source
Pour faire correspondre le premier caractère non blanc, vous devez simplement l'utiliser
\S
comme vous le faites normalement.Si vous utilisez
^
une expression régulière dans vim, elle correspondra au début réel de la ligne, même si elle contient des espaces.Par exemple, cette ligne commence par un espace:
Cette commande vim supprimera l'espace de tête:
résultant en ce qui suit:
Ainsi, l'expression régulière se comportera comme vous vous y attendez, même si la commande ne le fait pas.
la source
^
opérateur (comme toutes les implémentations rationnelles rationnelles), correspondra au premier caractère même s'il s'agit d'un espace.\S
pour faire correspondre le premier caractère non blanc.\S
correspondra à tout caractère non blanc. Pour mettre une autre façon, je me demande si Vim a un raccourci zéro largeur pour cela:^\W*\S
.