Diverses motions:%
La %
commande passe à la correspondance de l'élément sous le curseur. Positionnez le curseur sur le paren d'ouverture (ou de fermeture) et utilisez y%
-le d%
pour supprimer ou tout supprimer du curseur au paren correspondant.
Cela fonctionne parce qu'il %
s'agit d'une "commande de mouvement", donc elle peut être utilisée partout où vim attend une telle commande. De :help y
:
["x]y{motion} Yank {motion} text [into register x]. When no
characters are to be yanked (e.g., "y0" in column 1),
this is an error when 'cpoptions' includes the 'E'
flag.
Par défaut, "item" comprend des crochets, des accolades, des parenthèses, des commentaires de style C et diverses instructions de précompilateur ( #ifdef
, etc.).
Il existe un plugin pour "% matching étendu" que vous pouvez trouver sur la page d'accueil de Vim .
Vous pouvez lire la documentation %
et les commandes de mouvement associées en entrant :help various-motions
en mode commande.
sélection d'objet
Il existe un autre ensemble de commandes de mouvement que vous pouvez utiliser en mode Visuel pour sélectionner divers objets texte.
Pour résoudre votre problème spécifique, procédez comme suit:
printf("%3.0f\t%6.1f\n", fahr, ((5.0/9.0) * (fahr-32)));
^
Disons que votre curseur est positionné sur ^
. Entrez la séquence suivante pour sélectionner la pièce que vous recherchez:
v2a)
v
Passez d' abord en mode visuel, puis vous spécifiez que vous souhaitez augmenter les 2
niveaux de parens. Enfin, le a)
sélectionne "un bloc". Après cela, vous pouvez utiliser d
ou x
supprimer, etc.
Si vous ne souhaitez pas inclure les parenthèses externes, vous pouvez utiliser "bloc interne" à la place:
v2i)
Consultez :help object-select
la liste complète des commandes associées.
a
signifiait «autour» plutôt que «a». Sentez-vous qu'il complète mieux "intérieur". Il ne se passe pas un jour sans apprendre quelque chose de nouveau sur Vim semble-t-il.Et
dib
oudi(
.Cela supprimera le bloc intérieur (...) où se trouve le curseur.
J'adore les mouvements et les sélections d' objets texte !
la source
dab
=> supprimer un bloc (y compris ses parenthèses)Pour supprimer tout ce qui se trouve à l'intérieur d'une paire de parenthèses, vous pouvez toujours émettre
di(
et ses dérivés.Remarque :
Comme @porglezomb l'a suggéré dans son commentaire, vous pouvez utiliser
a
("avec") au lieu dei
("à l'intérieur") pour inclure les parenthèses. Ainsi, l'utilisationda(
supprime tout ce qui se trouve à l'intérieur(
et)
y compris(
et)
.Suppression du texte à l'intérieur de la paire externe immédiate de parenthèses:
Donc, pour cette ligne de code
en supposant que votre curseur se trouve dans la plage de curseur mentionnée ci-dessus, vous pouvez émettre les commandes suivantes:
Suppression du texte à l'intérieur de la n-ième paire de parenthèses externes:
Pour saisir tout ce qui se trouve à l'intérieur de la n-ième paire de parenthèses externes, ajoutez simplement
n
avant la commande ci-dessus. Donc, avec la même position de curseur que ci-dessus,la source
a
comme contrepartiei
, car cela aidera probablement beaucoup de gens.%
de ce problème, mais cela prend plus de temps et, à mon avis, ne devrait être utilisé que pour des scénarios plus complexes. Supprimer quelque chose à l'intérieur d'une certaine portée est exactement le cas d'utilisationdi
.Vous pouvez utiliser
d%
pour supprimer ety%
pour supprimer .la source
Placez votre curseur sur la première parenthèse, puis appuyez sur
v%y
ouv%d
.la source
Essayez ci [block-surrounder]
Dans votre cas, placez le curseur n'importe où entre les 2 parenthèses que vous avez mises en surbrillance et essayez les touches: ci (
la source
Comme le dit la réponse de David Norman,
Placez votre curseur sur la première parenthèse, puis appuyez sur
v%y
ouv%d
.Explication de http://vimdoc.sourceforge.net/htmldoc/vimindex.html :
Cela signifie qu'il sélectionnera tout ce qui se trouve entre et y compris les deux crochets (
%
) tout en vous montrant visuellement la sélection (v
), puis retirera / copieray
ou supprimera / couperad
. (Vers le tampon par défaut.)Vous pouvez mettre / coller avec
p
.J'ai fait cette réponse pour "m'apprendre à pêcher" .
la source