Wenn ich eine Variable (nicht irgendeine Zeichenfolge) in meinem Code auswähle , erhalten alle anderen Instanzen dieser Variablen einen Strich (weiße Kontur) um sie herum:
Gibt es eine Tastenkombination, mit der ich alle Instanzen der Variablen auswählen und alle gleichzeitig bearbeiten kann?
Dinge, die ich versucht habe:
⌘D, ⌘KUnd ⌘Ulässt mich sie one-by-one wählen, aber ich muss manuell die nicht-variable Zeichenfolge Einstimmungen ausschließen:
Mit using werden Ctrl⌘Geinfach alle Zeichenfolgenübereinstimmungen ausgewählt:
Sublime kann eindeutig zwischen Variablen- und Zeichenfolgenübereinstimmungen unterscheiden. Gibt es keine Möglichkeit, nur die Variablenübereinstimmungen auszuwählen?
quelle
variable (not just any string)
. Dadurch werden einfach alle Vorkommen der Zeichenfolge ausgewählt.Ich weiß, dass es sich bei der Frage um Macs handelt, aber ich habe hier nach der Antwort für Ubuntu gesucht, daher denke ich, dass meine Antwort für jemanden nützlich sein könnte.
Einfache Möglichkeit : AltF3.
quelle
foo
, wählen Sie nicht bereits das erste ausfoo
. Setzen Sie stattdessen einfach einen Cursor in das Wortfoo
und dannAlt-F3
. Voilafoo
nicht nur die hervorgehobenen.Trotz großer Anstrengungen habe ich keine integrierte oder Plugin-unterstützte Methode gefunden, um das zu tun, was Sie versuchen. Ich stimme voll und ganz , dass es sollte möglich sein, da das Programm unterscheiden kann
foo
aus ,buffoon
wenn Sie es zuerst markieren, aber niemand scheint eine Art und Weise zu tun , es zu wissen.Hier sind jedoch einige nützliche Tastenkombinationen für die Auswahl von Wörtern in Sublime Text 2:
Ctrl⌘G- wählt alle Vorkommen des aktuellen Wortes aus ( AltF3unter Windows / Linux)
⌘D- wählt die nächste Instanz des aktuellen Wortes aus ( CtrlD)
⌘E, ⌘H- verwendet die aktuelle Auswahl als Feld "Suchen" in Suchen und Ersetzen ( CtrlE, CtrlH)
quelle
⌘+D
auf alle Vorkommen des Strings wirkt. Wenn ich zum Beispiel hervorholefoo
, streicht sublime wunderbar alle Variablenfoo
s, aber nicht die Zeichenfolgefoo
in meinereject_buffoon
Funktion. Und dennoch bin ich gezwungen, mithilfe der obigen Tastenkombinationen⌘+K
die Zeichenfolgenübereinstimmungen manuell auszugeben, um eineeject_bufbarn
Funktion zu vermeiden . Es muss einen besseren Weg geben!foo_
(foo und das Leerzeichen danach) oder_foo_
(Leerzeichen vor und nach) auszuwählen und dann⌘-D
oder zu verwendenCtrl-⌘-D
.foo
zeigt oft auf , als(foo)
,_foo,
,(foo,
, und_foo}
, so_foo_
ziemlich unbefriedigend ist.Das hat bei mir funktioniert. Setzen Sie den Cursor dann an den Anfang des Wortes, das Sie ersetzen möchten
CtrlK, CtrlD, CtrlD...
Das sollte so viele Instanzen des Wortes auswählen, wie Sie möchten, dann können Sie einfach den Ersatz eingeben.
quelle
Die Magie ist, dass Sie mit einer leeren Auswahl beginnen müssen. Stellen Sie den Cursor also vor das Wort / Zeichen, das Sie mehrfach auswählen möchten, und drücken Sie Ctrl+ D.
quelle
Für mich ist dies der größte Fehler in Sublime. Alt+ F3ist schwer zu erreichen / zu merken und Ctrl+ Shift+ Gmacht keinen Sinn, wenn man bedenkt, dass Ctrl+ D"nächste Instanz zur Auswahl hinzufügen" ist.
Fügen Sie dies Ihren Benutzerschlüsselbindungen hinzu (Einstellungen> Schlüsselbindungen):
Jetzt können Sie etwas markieren, Ctrl+ Shift+ drücken Dund jede andere Instanz in der Datei zur Auswahl hinzufügen.
quelle
Es ist von @watsonic erwähnt , dass in Sublime Text 3 auf Mac OS, mit einem Start leere Auswahl , einfach ⌃⌘G( AltF3unter Windows) funktioniert der Trick, statt ⌘D+ ⌃⌘Gin Sublime Text 2.
quelle
Wie der Benutzer 1767754 sagte, besteht der Schlüssel hier darin, zunächst keine Auswahl zu treffen.
Platzieren Sie den Cursor einfach innerhalb des Variablennamens und doppelklicken Sie nicht, um ihn auszuwählen. Platzieren Sie bei Einzelzeichenvariablen den Cursor am Anfang oder Ende der Variablen, um zunächst keine Auswahl zu treffen.
Drücken Sie nun Cmd+ Dfür die nächste Variablenauswahl oder Ctrl+ Cmd+ Gfür die gleichzeitige Auswahl aller Variablen. Es werden nur die Variablen auf magische Weise ausgewählt.
quelle
Nur für den Fall, dass jemand anderes auf diese Frage gestoßen ist, während er nach einer Möglichkeit gesucht hat, eine Zeichenfolge über mehrere Dateien hinweg zu ersetzen, ist dies Command+ Shift+F
quelle