Sublime Text: Sélectionnez toutes les occurrences d’une variable et modifiez le nom de la variable

Je suis nouveau sur Sublime, et je viens de découvrir que si je sélectionne une variable (pas n’importe quelle chaîne) dans mon code, toutes les autres instances de cette variable reçoivent un contour (contour blanc):

entrer la description de l'image ici

Existe-t-il un raccourci clavier qui me permettra de sélectionner toutes les instances de la variable et de les modifier toutes en même temps?


Les choses que j’ai essayées:

En utilisant D , K et U , je peux les sélectionner une par une, mais je dois exclure manuellement les chaînes non-variables correspondantes:

entrer la description de l'image ici

Et en utilisant Ctrl G sélectionne simplement toutes les chaînes correspondantes:

entrer la description de l'image ici

De toute évidence, Sublime est capable de différencier les correspondances entre les variables et les chaînes. N’y a-t-il aucun moyen de sélectionner uniquement les correspondances de variables?

1. METTEZ LE CURSEUR DANS LA VARIABLE select ne sélectionnez rien; il suffit de mettre votre curseur là

curseur de texte sur variable

2. APPUYEZ SUR ⌘ D si nécessaire. Pas sur un Mac? Ctrl D

plus d'instances de variable en surbrillance

NE FONCTIONNE PAS? Y C’est difficile. Voici le truc: commencer par une SELECTION VIDE

subtile, non?

plus de commandes:

Rechercher tout: Ctrl G Sélectionne toutes les occurrences à la fois. Pas sur Mac? Alt F3

Annuler la sélection: U Recule en arrière. Pas sur un Mac? Ctrl U

Saut rapide Suivant: K D Ignore la prochaine occurrence. Pas sur un Mac? Ctrl K Ctrl D

Ocs Sublime Docs


h / t adzenith .

Je sais que la question concerne les Mac, mais je suis arrivé ici à chercher la réponse pour Ubuntu, donc je suppose que ma réponse pourrait être utile à quelqu’un.

Un moyen facile de le faire: Alt F3 .

Malgré beaucoup d’efforts, je n’ai pas trouvé de moyen intégré ou assisté par plug-in pour faire ce que vous essayez de faire. Je suis tout à fait d’accord que cela devrait être possible, car le programme peut distinguer foo de buffoon lorsque vous le mettez en évidence pour la première fois, mais personne ne semble le savoir.


Cependant, voici quelques combinaisons de touches utiles pour sélectionner des mots dans Sublime Text 2:

Ctrl G – sélectionne toutes les occurrences du mot actuel ( Alt F3 sous Windows / Linux)

D – sélectionne l’instance suivante du mot actuel ( Ctrl D )

  • K , D – saute l’instance actuelle et sélectionne la suivante ( Ctrl K , Ctrl D )
  • U – “soft undo”, retourne à la sélection précédente ( Ctrl U )

E , H – utilise la sélection actuelle comme champ “Rechercher” dans Rechercher et remplacer ( Ctrl E , Ctrl H )

Cela a fonctionné pour moi. Placez votre curseur au début du mot que vous souhaitez remplacer, puis

Ctrl K , Ctrl D , Ctrl D

Cela devrait sélectionner autant d’instances du mot que vous le souhaitez, alors vous pouvez simplement saisir le remplacement.

La magie est, vous devez commencer avec une sélection vide, alors mettez votre curseur en face du mot / caractère que vous souhaitez sélectionner et appuyez sur Ctrl + D

Pour moi, c’est la plus grosse erreur de Sublime. alt + f3 est difficile à atteindre / à retenir, et ctrl + shift + g n’a aucun sens vu que ctrl + d est “append l’instance suivante à la sélection”.

Ajoutez ceci à vos raccourcis clavier (Préférences> Liaisons de clés):

 { "keys": ["ctrl+shift+d"], "command": "find_all_under" }, 

Maintenant, vous pouvez mettre en évidence quelque chose, appuyez sur Ctrl + Maj + d , et cela appenda toutes les autres instances du fichier à la sélection.

Comme le dit user1767754, la clé ici est de ne faire aucune sélection au départ. Placez simplement le curseur dans le nom de la variable, ne double-cliquez pas pour le sélectionner. Pour les variables à caractère unique, placez le curseur à l’avant ou à la fin de la variable pour ne pas effectuer de sélection initiale. Continuez maintenant à appuyer sur Cmd + D pour la sélection de variable suivante ou sur Ctrl + Cmd + G pour sélectionner toutes les variables à la fois. Il ne choisira par magie que les variables.

Il est mentionné par @watsonic que: dans Sublime Text 3 sur macOS, en commençant par une sélection vide , simplement simply G ( Alt F3 sous Windows) fait l’affaire, au lieu de D + G dans Sublime Text 2.

Juste au cas où quelqu’un d’autre tomberait sur cette question en cherchant un moyen de remplacer une chaîne sur plusieurs fichiers, il s’agit de Command + Shift + F