Je sais que je peux supprimer du curseur jusqu'à et y compris la première occurrence d'un caractère x avec d/x<CR>
ou avec v/x<CR>d
si je veux voir la sélection en premier puis supprimer. Comment supprimer de la position actuelle du curseur jusqu'à la n ème occurrence de x ?
Par exemple, si le curseur se trouve après le premier espace dans
yada yada yada
yada yada yada x
yada yada yada x
yada yada yada x
xx
et je tape une commande pour supprimer jusqu'au troisième x le résultat doit être:
yada
xx
la source
f
et amis (F
,t
,T
,;
): par exemple ,2fx
vous obtiendrez à la deuxièmex
ou2;
répéterez la dernièref
fois.Vous pouvez le faire en tapant
où:
la source
est couramment utilisé dans vim pour répéter la macro "n" fois.
donc pour supprimer jusqu'à la 1ère occurrence de x, vous utiliseriez
1dfx
. De même, pour supprimer jusqu'à la 3ème occurrence de x, vous utiliseriez3dfx
.la source
@x
oùx
est votre registre. Vous faites référence à une commande en mode normal.<n>macro
n'est pas une notation standard dans vim pour les macros et que votre réponse utilise une commande de mode normal, elle est à peu près la même que celle de kapil.Donné:
où
$
indiquent les fins de lignes (:set list
mode), si le curseur est au début de la secondeyada
dans la première ligne, nous devons d'abord revenir à l'espace précédent en utilisant h, pour l'inclure dans la suppression. Alors juste 4d/xEnter. En d'autres termes, juste un décompte devant d/x. Le résultat est exactement:la source