Vim ex connaître le numéro tapé avant
Question
Je fais un raccourci qui place un # à l'avant de chaque ligne, dans les x lignes. x est un type numéro I avant d'entrer dans le raccourci, comme 11dd
de frappe supprime les onze lignes suivantes.
La commande est .,+10 s/^/#/g
. Ici, le numéro dix devrait vraiment être tout a été tapé avant le raccourci. Comment puis-je faire le changement de raccourci en fonction du nombre qui a été tapé avant qu'il?
ajouté après la question a répondu:
Alors maintenant, je suis ce qui suit dans le Vimrc:
nmap c1 :s/^/#/g<esc>``
nmap c0 :s/^#//g<esc>``
Ce qui me permet de taper 13ac
, ajouter #
à l'avant des 13 lignes suivantes, et 13dc
de supprimer tout #
à l'avant des 13 lignes suivantes.
Il vaut mieux que =pod
et =cut
car ils provoquent des erreurs imbriquées.
c1 = Ajouter commentaire,
c0 = commentaire supprimer.
# Est utilisé en Perl.
La solution
En mode ex
, vous pouvez utiliser la commande suivante:
s/^/#/count
où count
est le nombre de lignes que vous souhaitez modifier. Vous ne pouvez pas mettre le numéro avant la commande, car qui est utilisé pour sélectionner la ligne de départ (ligne actuelle si elle est omise). Ainsi:
5s/^/#/3
ajoutera un '#' avant les lignes 5, 6 et 7.
Modifier
En mode ex
vous pouvez utiliser la commande map
pour créer un raccourci vers une commande de deux points, que vous pouvez ensuite utiliser avec un préfixe:
map CC :s/^/#/g
Vous pouvez maintenant utiliser « xCC » en mode vi
préfixer « # » pour les prochaines lignes de x
.