Erhabener Text: Suchen und Ersetzen innerhalb der Auswahl

21

Ermöglicht Sublime Text 2 dem Benutzer das Suchen und Ersetzen, beschränkt auf die aktuelle Auswahl?

Ich sollte es mir denken müssen, nur konnte ich nach mehrmaliger Suche nicht herausfinden, wie man es durchführt.

JellicleCat
quelle

Antworten:

23

In ST2 gibt es dafür eine Schaltfläche.

Bildschirmfoto

Henno
quelle
4
Es stimmt, es gibt einen Knopf. Aber wie benutzt du es? Wie stellen Sie insbesondere "die Auswahl" ein? Aus meiner Erfahrung verwendet ST2 die Auswahl aus dem Zeitpunkt, als Sie die Suchleiste geöffnet haben. Wenn die Leiste bereits geöffnet ist, müssen Sie sie zuerst schließen (Esc), dann den zu untersuchenden Textbereich auswählen und dann erneut öffnen (Strg + F oder Strg + H). Pro-Tipp: Wenn die Auswahl mehrere Zeilen umfasst, wird der aktuelle Suchausdruck nicht ersetzt.
Robert
3
Cmd + Opt + F auf dem Mac, um die Find & Replace-Konsole zu öffnen.
Micah
2
Ich bin völlig verblüfft, warum es für "In Auswahl" keine Tastenkombination gibt, zumal es für alle anderen Optionen eine gibt! Muss ich wirklich meine Hand zur Maus bewegen, um das zu ermöglichen? Scheint gegen alle ST zu gehen, steht für ... (ich benutze ST3)
TheStoryCoder
5
@TheStoryCoder Ja, es ist blöd, dass das keine Tastenkombination ist, aber es stellte sich als einfach heraus, eine zu erstellen, außer dass der Name des Befehls nicht dokumentiert war, aber ich hatte Glück und habe richtig geraten. Hier ist der Code, den Sie zu Ihren Benutzerschlüsselbindungen hinzufügen können: {"keys": ["alt + y"], "command": "toggle_in_selection", "context": [{"key": "setting.is_widget", "operator" : "gleich", "operand": true}]},
Owen_R
Ein Hinweis für andere Leute, die wie ich verwirrt waren: Wenn Sie mehrere Textzeilen auswählen, dann drücken Sie Strg + H (wodurch Suchen & Ersetzen geöffnet wird) und geben Sie in das Feld "Suchen nach" ein, die ausgewählten Zeilen sehen jedoch nicht mehr ausgewählt aus sie sind es immer noch . Ohne dieses Problem hätte ich nicht einmal nach einer Lösung gesucht und diesen Beitrag gefunden. Übrigens, ich scheine mich daran zu erinnern, dass das Problem vorher noch nicht aufgetreten war. Vielleicht verschwindet es nach einem Neustart oder so.
Stefan Monov
7

Wenn Ihre Auswahl einen Zeilenumbruch enthält, wird die Schaltfläche "Innerhalb der Auswahl" automatisch aktiviert - auf ST2

Die Smart-Aktivierung ist auf ST3 leider verloren gegangen. Sie können dies hier nachverfolgen: http://www.sublimetext.com/forum/viewtopic.php?f=3&t=11679

skqr
quelle
10
Es ist jetzt möglich, diese Funktionalität mit "auto_find_in_selection" wieder herzustellen: true
mdrozdziel
Wie rufe ich es automatisch auf, wenn es keinen Zeilenumbruch enthält? Zum Beispiel, wenn Sie eine wirklich lange Zeile haben, die viele "Zeilen" umfasst? Jedes Mal, wenn ich diese Zeile ausgewählt habe und die Suche aufrufe, wird die Option "In Auswahl" deaktiviert.
user2544542
6

Folgendes müssen Sie zu Ihren Benutzerschlüsselbindungen hinzufügen:

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

Ja, es ist blöd, dass dies kein Standard-Tastensatz ist.

Auch der Befehlsname " toggle_in_selection" wurde nicht dokumentiert, aber ich vermutete und hatte Glück.


BEARBEITEN ZU HINZUFÜGEN:

/*
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
quelle
Die Tastenkombination ist standardmäßig bereits vorhanden.
Elsadek
Huh. Ich frage mich, warum ich es dann verpasst habe ... die einzigen "toggle_" Dinge, die ich in meinen Standardbindungen hatte, waren: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

(mit Mac OS X-spezifischen Verknüpfungen) zu ersetzen some namedurch new name:

  1. platzieren Sie den Cursor über dem Text
  2. Finden some name: cmdfTyp some name(manchmal drücken müssen return)
  3. Geben Sie ersetzen: shiftcmdr, tabtaberhalten Feld, Typ zu ersetzen new name, nicht drückenreturn
  4. wiederholen, altcmdebis fertig.
AJP
quelle
Kennt jemand einen schnelleren Weg, dies zu tun ?! Es ist ziemlich lächerlich und unnötig schwer zu merken
AJP
siehe @ oliver-gs Antwort - ST2 tut dies standardmäßig, und wenn Sie es deaktiviert haben, klicken Sie einfach ctrl+Hund gehen Sie zu "Suchen nach": Es gibt eine Schaltfläche mit dem Titel "In Auswahl"
Peter
2

Wählen Sie einfach den zu durchsuchenden Text aus und klicken Sie im Suchmenü auf Ersetzen. Dies wird automatisch in Ihrer Auswahl durchgeführt.

Oliver G
quelle
0

Der Schlüssel zum Ersetzen innerhalb der Auswahl besteht darin , zuerst den Text auszuwählen, dann zu suchen> zu ersetzen und dann den Text für das, was Sie suchen und ersetzen möchten, einzufügen , dann den Tooltip "in Auswahl" zu aktivieren und dann auf "Alle ersetzen" zu klicken. ..

user278847
quelle
0

Ich füge eine weitere Antwort hinzu, da die beste und hilfreichste Lösung (meiner Meinung nach) in einem Kommentar versteckt war und ich sie fast verpasst hätte (danke @mdrozdziel).

Wählen Sie den Text aus, in dem Sie suchen möchten, und drücken Sie Shift+ H, um die Symbolleiste zum Suchen und Ersetzen aufzurufen. Rechts neben der Schaltflächenbank befindet sich links eine Schaltfläche, mit der die Suche innerhalb der Auswahl aktiviert wird.

Dies ist standardmäßig in ST3 aus , aber Sie können es auf auf Standard gesetzt , wenn Sie mehr als eine Zeile auswählen , indem Sie das Hinzufügen "auto_find_in_selection": truezu Ihrer Voreinstellungsdatei (gefunden durch die Eingabe Alt, N, S, Enter).

cyuut
quelle