Si je sélectionne une variable (pas n'importe quelle chaîne) dans mon code, toutes les autres instances de cette variable obtiennent un trait (contour blanc) autour d'elles:
Existe-t-il un raccourci clavier qui me permettra de sélectionner toutes ces instances de la variable et de les modifier toutes en même temps?
Choses que j'ai essayées:
⌘D, ⌘KEt ⌘Ume permet de les sélectionner un par un, mais je dois exclure manuellement les matchs de chaîne non variables:
Et l'utilisation Ctrl⌘Gsélectionne simplement toutes les correspondances de chaînes:
De toute évidence, Sublime est capable de différencier les correspondances de variables et de chaînes. N'y a-t-il aucun moyen de sélectionner uniquement les correspondances de variables?
la source
variable (not just any string)
. Cela sélectionne simplement toutes les occurrences de la chaîne.Je sais que la question concerne les Mac, mais je suis arrivé ici en cherchant la réponse pour Ubuntu, donc je suppose que ma réponse pourrait être utile à quelqu'un.
Un moyen facile de le faire: AltF3.
la source
foo
intérieur, ne sélectionnez pas déjà le premierfoo
. Au lieu de cela, placez simplement un curseur dans le motfoo
, puisAlt-F3
. Voilafoo
pas seulement celles en surbrillance.Malgré beaucoup d'efforts, je n'ai pas trouvé de moyen intégré ou assisté par plugin pour faire ce que vous essayez de faire. Je suis entièrement d' accord qu'il devrait être possible, le programme peut distinguer
foo
debuffoon
quand vous mettez en évidence, mais personne ne semble savoir d' une façon de le faire.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 courant ( AltF3sous Windows / Linux)
⌘D- sélectionne l'instance suivante du mot courant ( CtrlD)
⌘E, ⌘H- utilise la sélection actuelle comme champ "Rechercher" dans Rechercher et remplacer ( CtrlE, CtrlH)
la source
⌘+D
agit sur toutes les occurrences de la chaîne. Par exemple, si je soulignefoo
, sublime caresse à merveille toutes les variablesfoo
s, mais pas la chaînefoo
dans maeject_buffoon
fonction. Et pourtant, en utilisant les combinaisons de touches ci-dessus, je suis obligé de⌘+K
supprimer manuellement les correspondances de chaîne pour éviter d'avoir uneeject_bufbarn
fonction. Il doit y avoir une meilleure façon!foo_
(foo et l'espace après) ou_foo_
(espaces à la fois avant et après), puis d'utiliser⌘-D
ouCtrl-⌘-D
.foo
montre souvent que(foo)
,_foo,
,(foo,
et_foo}
, donc_foo_
est assez peu satisfaisante.Cela a fonctionné pour moi. Placez votre curseur au début du mot que vous souhaitez remplacer, puis
CtrlK, CtrlD,CtrlD ...
Cela devrait sélectionner autant d'instances du mot que vous le souhaitez, puis vous pouvez simplement taper le remplacement.
la source
La magie est, vous devez commencer avec une sélection vide, alors placez votre curseur devant le mot / caractère que vous souhaitez sélectionner et appuyez sur Ctrl+ D.
la source
Pour moi, c'est la plus grosse erreur de Sublime. Alt+ F3est difficile à atteindre / à retenir, et Ctrl+ Shift+ Gn'a aucun sens si l'on considère Ctrl+D est "ajouter la prochaine instance à la sélection".
Ajoutez ceci à vos raccourcis clavier utilisateur (Préférences> Liaisons clavier):
Maintenant, vous pouvez mettre en surbrillance quelque chose, appuyez sur Ctrl+ Shift+ D, et il ajoutera toutes les autres instances du fichier à la sélection.
la source
Il est mentionné par @watsonic que dans Sublime Text 3 sur Mac OS, en commençant par une sélection vide , il suffit ⌃⌘G( AltF3sous Windows) de faire l'affaire, au lieu de ⌘D+ ⌃⌘Gdans Sublime Text 2.
la source
Comme l'a dit user1767754, la clé ici est de ne faire aucune sélection au départ.
Placez simplement le curseur à l'intérieur du 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 faire aucune sélection initialement.
Continuez maintenant à appuyer sur Cmd+ Dpour la sélection de variable suivante ou Ctrl+ Cmd+ Gpour sélectionner toutes les variables à la fois. Il sélectionnera comme par magie uniquement les variables.
la source
Au cas où quelqu'un d'autre serait tombé sur cette question en cherchant un moyen de remplacer une chaîne dans plusieurs fichiers, c'est Command+ Shift+F
la source