Texte sublime: Rechercher et remplacer dans la sélection

21

Sublime Text 2 permet-il à l'utilisateur d'effectuer une recherche et un remplacement, limité à la sélection actuelle?

Je devrais penser que c'est le cas, mais je n'ai pas pu, après plusieurs recherches, trouver comment l'exécuter.

JellicleCat
la source

Réponses:

23

Il y a un bouton pour cela dans ST2.

Capture d'écran

Henno
la source
4
Certes, il y a un bouton. Mais comment l'utilisez-vous? En particulier, comment définissez-vous "la sélection"? D'après mon expérience, ST2 utilise la sélection du moment où vous avez ouvert la barre de recherche. Donc, si la barre est déjà ouverte, vous devez d'abord la fermer (Esc), puis sélectionner la plage de texte que vous souhaitez examiner, puis la rouvrir (Ctrl + F ou Ctrl + H). Conseil de pro: si la sélection s'étend sur plusieurs lignes, elle ne remplacera pas votre expression de recherche actuelle.
Robert
3
Cmd + Opt + F sur mac pour ouvrir la console de recherche et remplacement.
Micah
2
Je suis complètement perplexe quant à la raison pour laquelle il n'y a pas de raccourci clavier pour ce "En sélection", surtout car il y en a pour toutes les autres options! Dois-je vraiment déplacer ma main vers la souris pour l'activer? Semble aller contre tous les ST signifie ... (j'utilise ST3)
TheStoryCoder
5
@TheStoryCoder ouais c'est idiot qu'il n'y a pas de raccourci clavier, mais il s'est avéré facile d'en créer un, sauf que le nom de la commande n'était pas documenté mais j'ai eu de la chance et j'ai deviné juste. Voici le code à ajouter à vos raccourcis clavier utilisateur: {"clés": ["alt + y"], "commande": "toggle_in_selection", "context": [{"clé": "setting.is_widget", "operator" : "égal", "opérande": vrai}]},
Owen_R
Une note pour les autres personnes confuses comme moi: lorsque vous sélectionnez plusieurs lignes de texte, appuyez sur Ctrl + H (qui ouvre Rechercher et remplacer) et commencez à taper dans le champ "Rechercher quoi", les lignes sélectionnées cessent de paraître sélectionnées, mais ils le sont toujours . Sans ce problème, je n'aurais même pas cherché de solution et trouvé ce post. BTW Je semble me rappeler que le problème n'était pas là avant, donc peut-être après un redémarrage ou quelque chose, il disparaîtra.
Stefan Monov
7

Si votre sélection comprend un saut de ligne, le bouton "dans la sélection" sera automatiquement activé - sur ST2

Malheureusement, l'activation intelligente a été perdue sur ST3. Vous pouvez suivre cela ici http://www.sublimetext.com/forum/viewtopic.php?f=3&t=11679

skqr
la source
10
Il est maintenant possible de ramener cette fonctionnalité en utilisant: "auto_find_in_selection": true
mdrozdziel
Comment puis-je l'appeler automatiquement lorsqu'il n'inclut pas de saut de ligne? Par exemple, lorsque vous avez une très longue ligne qui s'étend sur de nombreuses "lignes"? Chaque fois que cette ligne est sélectionnée et que j'appelle la recherche, elle désactive l'option "en sélection".
user2544542
6

Voici ce que vous devez ajouter à vos raccourcis clavier utilisateur:

{ "keys": ["alt+y"], "command": "toggle_in_selection", "context":
    [
        { "key": "setting.is_widget", "operator": "equal", "operand": true }
    ]
},

Ouais, c'est stupide que ce ne soit pas un ensemble de raccourcis clavier par défaut.

De plus, le nom de la commande " toggle_in_selection" n'était pas documenté, mais j'ai deviné et j'ai eu de la chance.


MODIFIER POUR AJOUTER:

/*
btw, the way i want to use find by default
(actually, i use replace by default, but same dif),
is for "in_selection" to be true by default,
*unless* the selection is empty.
(
the default is that "in_selection" is *false* by default,
unless the selection contains a newline.
)
i finally got around to digging up how to get that,
which is apparently by changing the *keybindings* you use to pop open the find(/replace) panel?
*/
    { "keys": ["ctrl+f"], "command": "show_panel", "args": {"panel": "replace", "in_selection": true}},
    { "keys": ["ctrl+f"], "command": "show_panel", "args": {"panel": "replace", "in_selection": false},
    "context":
        [
            { "key": "selection_empty", "operator": "equal", "operand": true}
        ]
    },
Owen_R
la source
La liaison de touches existe déjà par défaut.
elsadek
Huh. Je me demande pourquoi je le manquais, alors ... les seules choses "toggle_" que j'avais dans mes fixations par défaut étaient:toggle_side_bar toggle_full_screen toggle_distraction_free toggle_overwrite toggle_record_macro toggle_setting toggle_comment toggle_case_sensitive toggle_regex toggle_whole_word toggle_preserve_case
Owen_R
3

(avec des raccourcis spécifiques à Mac OS X) à remplacer some namepar new name:

  1. placez le curseur au-dessus du texte
  2. Trouver some name: cmdf, le type some name(parfois besoin de presse return)
  3. Précisez remplacer: shiftcmdr, tabtabpour arriver à remplacer le terrain, le type new name, ne pas appuyer surreturn
  4. répéter altcmdejusqu'à ce que ce soit fait.
AJP
la source
Quelqu'un connaît-il un moyen plus rapide de le faire?! C'est assez ridicule et inutilement difficile à retenir
AJP
voir la réponse de @ oliver-g - ST2 le fait par défaut, et si vous l'avez désactivé, il suffit de cliquer ctrl+Het de gauche pour "Find What:" il y a un bouton intitulé "In selection"
Peter
2

Sélectionnez simplement le texte que vous souhaitez rechercher, puis cliquez sur Remplacer dans le menu Rechercher. Il le fera automatiquement dans votre sélection.

Oliver G
la source
0

la clé pour travailler avec remplacer dans la sélection est de sélectionner d'abord le texte, puis de rechercher> remplacer, puis de remplir le texte pour ce que vous allez trouver et remplacer, puis de vérifier le bouton info-bulle "dans la sélection", puis de cliquer sur "Remplacer tout". ..

user278847
la source
0

J'ajoute une autre réponse car la solution la meilleure et la plus utile (à mon avis) était cachée dans un commentaire et je l'ai presque manquée (merci @mdrozdziel).

Sélectionnez le texte que vous souhaitez rechercher, appuyez sur Shift+ Hpour afficher la barre d'outils Rechercher et remplacer. Il y a un bouton à droite de la banque de boutons à gauche qui activera la recherche dans la sélection.

Ceci est désactivé par défaut dans ST3 mais vous pouvez le mettre à défaut lorsque vous sélectionnez plus d'une ligne en ajoutant "auto_find_in_selection": trueà votre fichier de préférences (trouvé en entrant Alt, N, S, Enter).

cyuut
la source