web-dev-qa-db-fra.com

Texte sublime: sélectionnez toutes les occurrences d'une variable et modifiez son nom.

Je suis nouveau sur Sublime et je viens de découvrir que si je sélectionnais une variable (pas n'importe quelle chaîne) dans mon code, toutes les autres instances de cette variable obtenir un trait (contour blanc) autour d'eux:

enter image description here

Existe-t-il un raccourci clavier qui me laisse sélectionnez toutes ces instances de la variable et modifiez-les toutes en même temps?


Choses que j'ai essayées:

En utilisant DK, et U me permet de les sélectionner un par un, mais je dois exclure manuellement les correspondances de chaînes non variables:

enter image description here

Et en utilisant CtrlG sélectionne simplement tout la chaîne correspond à:

enter image description here

Clairement, Sublime est capable de différencier les correspondances de variables et de correspondances de chaînes. N'y a-t-il pas moyen de sélectionner uniquement les correspondances variables?

397
Oskar Persson

1. METTRE LE CURSEUR DANS LA VARIABLE

La clé est de commencer avec une sélection vide - ne pas surligner; il suffit de déplacer votre curseur à cet endroit.

text cursor on variable

2. PRESSE D au besoin. Pas sur un Mac? CtrlD

more instances of variable highlighted

???? n'a pas fonctionné? Essayez à nouveau en vous assurant de démarrer avec une sélection vide .

???? plus de commandes:

Rechercher tout: CtrlG Sélectionne toutes les occurrences en même temps. Pas sur un Mac? AltF3

Annuler la sélection: U recule. Pas sur un Mac? CtrlU

Saut rapide Suivant: KD Ignore la prochaine occurrence. Pas sur un Mac? CtrlKCtrlD

???? Docs Sublimes


h/t adzenith .

567
Nolan Amy

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

Un moyen facile de le faire: AltF3.

131
elaRosca

Malgré beaucoup d’efforts, je n’ai pas trouvé de moyen intégré ou assisté par plugin de faire ce que vous essayez de faire. Je suis tout à fait d’accord que cela devrait soit possible, car le programme peut distinguer foo de buffoon quand vous le surlignez pour la première fois, mais personne ne semble connaître le moyen de le faire.


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

CtrlG - sélectionne toutes les occurrences du mot actuel (AltF3 sous Windows/Linux)

D - sélectionne l'instance suivante du mot actuel (CtrlD)

  • K,D - ignore l'instance actuelle et sélectionne la suivante (CtrlK,CtrlD)
  • U - "soft undo", revient à la sélection précédente (CtrlU)

EH - utilise la sélection actuelle comme champ "Rechercher" dans Rechercher et remplacer (CtrlE,CtrlH)

44
MattDMo

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

CtrlKCtrlDCtrlD ...

Cela devrait sélectionner autant d'instances du mot que vous le souhaitez, vous pouvez simplement taper le remplacement.

21
hobs

La magie est, vous devez commencer avec une sélection vide, donc placez votre curseur devant le mot/caractère que vous voulez sélectionner et appuyez sur Ctrl +D

12
user1767754

Pour moi, c'est la plus grosse erreur de Sublime. alt + f3 est difficile à atteindre/souvenez-vous, et ctrl + shift + g n'a aucun sens étant donné que ctrl + d est "ajouter l'instance suivante à la sélection".

Ajoutez ceci à votre raccourcis clavier (Préférences> raccourcis clavier):

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

Maintenant, vous pouvez mettre en évidence quelque chose, appuyez sur Ctrl+Shift+det ajoutera toutes les autres instances du fichier à la sélection.

7
Travis Heeter

C'est mentionné par @watsonic cela: dans Sublime Text 3 sur macOS, en commençant par une sélection vide , simplement G (AltF3 sur Windows) fait le tour, au lieu de D + G en texte sublime 2.

3
Franklin Yu

Comme l'a 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 dessus pour la sélectionner. Pour les variables à un caractère, placez le curseur au début ou à la fin de la variable pour ne pas effectuer de sélection initiale. Maintenant continue à frapper Cmd+D pour la sélection de variable suivante ou Ctrl+Cmd+G pour sélectionner toutes les variables à la fois. Comme par magie, seules les variables seront sélectionnées.

2
manish_s

Juste au cas où quelqu'un d’autre trébucherait sur cette question en cherchant un moyen de remplacer une chaîne de plusieurs fichiers, c’est Command+Shift+F

0
Jay