257 votes

Comment sélectionner entre des parenthèses (ou des guillemets ou ...) dans Vim ?

Je suis sûr qu'il y avait un plugin pour ce genre de choses, mais maintenant que j'en ai besoin, je n'arrive pas à le trouver (naturellement), alors je vais demander gentiment et simplement.

Quel est le moyen le plus simple de sélectionner entre des parenthèses, ou des guillemets, ou généralement une liste de caractères correspondants ?

   write ( *, '(a)' ) 'Computed solution coefficients:'

Par exemple, ici je voudrais sélectionner (a) ou Computed solution coefficients: .

Je ne suis pas intéressé par les cas multilignes, mais seulement par ceux qui se produisent sur une seule ligne.

354voto

CMS Points 315406

Pour choisir entre les guillemets simples, je fais habituellement un vi' ("select inner single quotes").

Dans un bloc de parenthèses, j'utilise vib ("select inner block")

À l'intérieur d'un bloc d'accolades, vous pouvez utiliser viB ("capital B")

Pour rendre les sélections "inclusives" (en sélectionnant également les guillemets, les parenthèses ou les accolades), vous pouvez utiliser la méthode suivante a au lieu de i .

Vous pouvez en savoir plus sur le Sélections d'objets texte sur le manuel, ou :help text-objects dans vim.

0 votes

Merci pour cette astuce, j'ai cherché et demandé quelque chose de similaire et je n'étais pas satisfait de mes résultats. Génial.

0 votes

Ce conseil est très simple et facile à intégrer dans mon cerveau et ma mémoire musculaire. merci.

1 votes

C'est un conseil très utile. Plus besoin de se débattre avec des frappes supplémentaires. Merci pour le lien.

305voto

Tim Whitcomb Points 5267

Utilisez la touche de navigation que vous voulez pour vous placer entre les parenthèses, puis vous pouvez utiliser l'une des deux méthodes suivantes yi( o yi) pour copier tout ce qui se trouve dans les parens correspondants. Cela fonctionne également avec des crochets (par exemple yi] ) et des accolades. En plus des y vous pouvez également supprimer ou modifier du texte (par ex. ci) , di] ).

J'ai essayé avec des guillemets doubles et simples et il semble que cela fonctionne également. Pour vos données, oui :

write (*, '(a)') 'Computed solution coefficients:'

Déplacez le curseur sur le C puis tapez yi' . Déplacez le curseur sur une ligne vierge, appuyez sur p et on obtient

Computed solution coefficients:

Como La CMS a noté cela fonctionne également pour la sélection du mode visuel - utilisez simplement vi) , vi} , vi' etc.

1 votes

Je cherche généralement un moyen de sélectionner tout ce qui se trouve entre des caractères de correspondance prédéfinis (normalement, uniquement les guillemets simples et doubles, et les parenthèses de toutes sortes).

2 votes

Qu'entendez-vous par "mots séparés" ? Je l'ai essayé sur "[x, y, z]" et il a trouvé "x, y, z".

4 votes

Ne tenez pas compte du dernier commentaire - j'ai trouvé quel était le problème. Cela fonctionne comme un charme :-)

32voto

michael Points 5990

Cette méthode de sélection est intégrée et bien couverte dans l'aide de Vim. Elle couvre les balises XML et plus encore.

Ver :help text-objects .

2 votes

:help text-objects se rapproche des éléments utiles... vous pourriez au moins mentionner certains des éléments les plus courants, comme a" et a( en mode visuel.

2 votes

(Aussi, +1 parce que malgré le fait d'être un utilisateur de vim de longue date, je ne connaissais pas ces derniers !)

0 votes

@Stobor . Merci d'avoir corrigé cette référence

26voto

Canopus Points 3154

Pour sélectionner entre guillemets simples, utilisez vi' .

Pour la sélection entre parenthèses, utilisez vi( .

4 votes

Nota: ci' o ci( pour changer au lieu de sélectionner visuellement. Mais cela fait exactement ce que je voulais. Merci :)

0 votes

La seconde ne fonctionne qu'à l'intérieur du bloc (), donc en général je fais %vi( o %vib

9voto

Stobor Points 15428

Utilisez les flèches ou hjkl pour arriver à l'une des expressions entre crochets, puis v pour sélectionner le mode visuel (c'est-à-dire la sélection), puis % pour passer à l'autre tranche.

7 votes

(ne fait pas les citations, malheureusement, cependant...)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X