Sublime Text 3 - Comportement Quick Add / Find Match

14

Supposons que je travaille avec un fichier In Sublime Text 3 qui contient plusieurs occurrences d'une variable de caractère unique c, que je veux renommer sous un autre nom.

Lorsque je sélectionne une instance de cette variable avec mon curseur, Sublime Text met automatiquement en surbrillance les autres instances de cette variable pour moi:

Cette surbrillance visuelle est activée par le paramètre "match_selection": true:, et montre clairement que le sublime est suffisamment intelligent pour ne mettre en évidence que les autres instances de ce personnage lorsqu'il est pertinent en tant que variable.

Cependant, malgré cette mise en évidence indiquant que cela devrait être possible, il semble qu'il n'y ait pas de moyen facile de sélectionner automatiquement uniquement ces cvariables mises en évidence .

Si je veux renommer rapidement toutes les instances de la variable à l' caide de plusieurs curseurs, soit avec Ajout rapide suivant ( cmd+D) ou Recherche rapide tout ( ctrl+cmd+G) au lieu de sélectionner uniquement cette variable c, j'obtiens chaque instance du caractère 'c' sélectionnée:

Ceci n'est évidemment pas utile du tout, car il n'a aucune corrélation avec la variable réelle; Il a simplement sélectionné aveuglément toutes les lettres "c", qu'elles soient ou non la variable sélectionnée.

Existe-t-il un moyen de forcer l' ajout rapide suivant et la recherche rapide tout , à se comporter comme les règles de mise en surbrillance utilisées par le match_selectionparamètre? Ce serait beaucoup plus utile dans ce cas que de sélectionner simplement aveuglément chaque instance du ou des caractères sélectionnés.

Suis-je en train de manquer quelque chose? Je ne trouve pas d' option Rechercher rapidement toutes les instances ou Ajouter rapidement la variable suivante , ni aucun moyen de personnaliser le comportement par défaut de Recherche rapide et d' Ajout rapide suivant . Pour autant que je sache, mes seules options sont soit de renommer manuellement chaque instance de c, soit d'écrire des regex personnalisés pour obtenir le même résultat que l'algorithme de surbrillance d'origine.

Johannes
la source

Réponses:

23

L'astuce consiste à commencer avec une sélection vide, avec votre curseur juste à gauche du mot que vous souhaitez sélectionner. Ensuite, appuyez sur CtrlG(ou AltF3sur Windows / Linux) pour sélectionner toutes les instances de ce mot:

code lua

ou appuyez sur D( CtrlDsur Win / Lin) pour commencer à les sélectionner un par un.

MattDMo
la source
1
Fondamentalement, exactement ce que je cherchais, cheers :) -
Johannes
Cela fonctionne si vous les voulez tous dans un fichier; Je veux juste tous ceux qui sont à proximité, comme vous obtenez avec Ctrl + D.
Ben Dilts
@BenDilts Je ne sais pas trop ce que vous demandez. Qu'essayez-vous de faire?
MattDMo
Supposons que vous ayez un fichier avec dix méthodes différentes, chacune ayant une variable locale nommée "c". Je veux juste sélectionner rapidement ceux dans une zone plus petite que le fichier entier.
Ben Dilts
2
@BenDilts Placez votre curseur juste à gauche du premier et sélectionnez ceux que vous souhaitez utiliser Ctrl-D, comme je l'ai dit dans ma réponse.
MattDMo
0

Lorsque vous sélectionnez et renommez toutes les occurrences d'une variable, cela n'implique pas que toutes les chaînes doivent être renommées. Par exemple, «c» peut apparaître en plusieurs mots, et non en tant que variables. Afin de renommer UNIQUEMENT les occurrences qui sont des variables, vous pouvez utiliser le module complémentaire anaconda:

Faites un clic droit sur la variable

Sélectionnez Anaconda -> Renommer l'objet sous le curseur

Ps. On peut Double-cliquer sur la variable pour vérifier quelle serait la sélection avant d'exécuter le changement de nom.

Leo
la source