web-dev-qa-db-fra.com

Sublime Text: Rechercher et remplacer dans la sélection

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

Je devrais penser que c’est le cas, mais après plusieurs recherches, j’ai été incapable de trouver le moyen de le réaliser.

20
JellicleCat

Il y a un bouton pour cela dans ST2.

Screenshot

22
Henno

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

L'activation intelligente a malheureusement été perdue sur ST3. Vous pouvez suivre cette question ici http://www.sublimetext.com/forum/viewtopic.php?f=3&t=11679

7
skqr

Voici ce que vous devez ajouter à vos liaisons de clé utilisateur:

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

Ouais, c'est idiot que ce ne soit pas un jeu de touches par défaut.

De plus, le nom de la commande "toggle_in_selection" n'a pas été 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}
        ]
    },
6
Owen_R

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

  1. place le curseur au dessus du texte
  2. Trouvez some namecmdf, tapez some name (vous devez parfois appuyer sur return)
  3. Spécifiez remplacer: shiftcmdrtabtab pour arriver à remplacer le champ, tapez new name, ne pas appuyez sur return
  4. répéter altcmde jusqu'à ce que fait.
3
AJP

Il suffit de sélectionner le texte que vous souhaitez rechercher, puis cliquez sur Remplacer dans le menu de recherche. Il le fera automatiquement dans votre sélection.

2
Oliver G

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'avais presque manqué (merci @mdrozdziel).

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

Cette option est désactivée par défaut dans ST3, mais vous pouvez la définir par défaut lorsque vous sélectionnez plusieurs lignes en ajoutant "auto_find_in_selection": true à votre fichier de préférences (trouvé en saisissant Alt,N,S,Enter).

0
cyuut

la clé pour travailler avec remplacer dans la sélection est de PREMIER sélectionnez le texte puis allez à trouver> remplacez puis remplissez le texte pour ce que vous allez trouver et remplacer, puis - cochez le bouton "en sélection" puis cliquez sur "Remplacer tout" ...

0
user278847