Comment ignorer une correspondance lorsque j'utilise Ctrl + D pour plusieurs sélections dans Sublime Text 2?

180

J'ai du code comme:

testVar = { a: 1 };
testVariable1 = 2;
var c = testVar.a + testVariable2;
var d = testVar;

Je veux renommer la variable "testVar". Lorsque je place plusieurs curseurs avec Ctrl+ Det modifie la variable, "testVariable" est également sélectionné et édité.

Existe-t-il un moyen de sauter certaines sélections lors de la configuration de plusieurs curseurs avec Ctrl+ D?

Just_Mad
la source

Réponses:

257

Utilisez simplement Ctrl+ K, Ctrl+ D.

(pour OS X: Cmd+ K, Cmd+ D)

Nécessite un peu de pratique, mais fait le travail!

Romain
la source
33
Ce n'est pas en fait Ctrl + K + D, c'est Ctrl + K, Ctrl + D. Beaucoup plus facile de les taper en série plutôt qu'en parallèle!
Tim Keating
4
@Qwerty: Alt + F3 Sélectionne toutes les occurrences.
Emil Stenström
16
@Romain a écrit "Nécessite un peu de pratique". Je pense que cela signifie que cela pourrait être plus intuitif. N'appuyez pas sur la combinaison de touches tant que ce que vous voulez ignorer n'est pas en surbrillance. Par exemple, si vous avez 3 matchs et que vous voulez sauter le 2e, mettez d'abord le 1er en surbrillance, appuyez sur CTRL + D pour mettre en surbrillance le 2e, PUIS appuyez sur la combinaison de touches pour sauter le 2e match et mettez le 3e en surbrillance. Aidez-moi?
Tyler Collier
Ajoutez ceci au keymap utilisateur et réduisez le temps de pratique à presque 0! { "keys": ["ctrl+alt+d"], "command": "find_under_expand_skip" }
Mrchief
super mon ami !!
Juan
85

Vous pouvez appuyer sur Ctrl+ Ket Ctrl+ Den même temps pour sauter une sélection. Si vous êtes allé trop loin dans votre sélection, vous pouvez utiliser Ctrl+ Upour revenir à une sélection précédente.

Remarque : remplacez Ctrlpar Cmdpour Mac OS X.

La configuration par défaut pour cela peut être visualisée en allant à Preferences> Key Bindings-Defaultdans la barre de menus de l'application, où vous verrez quelque chose comme ceci:

{ "keys": ["ctrl+d"], "command": "find_under_expand" },
{ "keys": ["ctrl+k", "ctrl+d"], "command": "find_under_expand_skip" }

Si vous le souhaitez, vous pouvez configurer les clés selon vos besoins, en accédant à Preferences> Key Bindings-Useret en copiant le code ci-dessus, puis en modifiant les clés.

SUB0DH
la source
61

Si vous avez le curseur sur le mot et utilisez Ctrl+ Dpour sélectionner le mot. La prochaine fois que vous frappez Ctrl+D il devrait sélectionner le mot suivant en surbrillance.

Si vous double-cliquez pour sélectionner le mot, Ctrl+ Dsélectionnera la chaîne exacte et non seulement celles en surbrillance.

En d'autres termes, Ctrl+ Dsans aucun surligné effectue une recherche par mot entier . Si vous avez déjà quelque chose en surbrillance, Ctrl+ Deffectuera une recherche de sous-chaînes.

J'ai testé et cela fonctionne dans Sublime Text 2 Version 2.0.1, Build 2217.

Atomicflare
la source
11
C'est en fait la seule vraie solution à ce problème. Les gens votent sans cervelle.
Qwerty
ctrl+ D avec rien sélectionné est également sensible à la casse .
venkatvb
2
@vankatvb Je ne trouve pas que c'est vrai ... Ctrl+ Dsans rien sélectionné est toujours insensible à la casse pour moi. Il ne décrira que les correspondances sensibles à la casse, mais l'utilisation du raccourci ou Alt+ F3sélectionnera celles qui ne correspondent pas à la casse.
Schisme du
Btw, voici la même réponse dans une autre question: stackoverflow.com/a/18422707/782045
intéressantlythere
7

Placez le curseur avant la variable, ne sélectionnez pas la variable, appuyez sur Ctrl+Dpour sélectionner chaque occurrence de la variable, pas le motif.

n1nj4
la source
1

Réponse mise à jour pour vscode en 2020 sur Windows, dans keybindings.json, ajoutez cette ligne pour ignorer facilement la prochaine occurrence sélectionnée:

  {
    "key": "ctrl+alt+d",
    "command": "editor.action.moveSelectionToNextFindMatch",
    "when": "editorFocus"
  },

* oui je sais que la question est pour un texte sublime, mais je l'ai trouvée en googlant la même question + vscode, donc cela pourrait aider quelqu'un puisque les mappages sont identiques.

bevo009
la source