Sublime Text 3 - Schnelles Hinzufügen / Finden von Übereinstimmungen

14

Angenommen, ich arbeite mit einer Datei in Sublime Text 3, die mehrere Vorkommen einer einzelnen Zeichenvariablen enthält c, die ich in einen anderen Namen umbenennen möchte.

Wenn ich mit dem Cursor eine Instanz dieser Variablen auswähle, hebt Sublime Text automatisch die anderen Instanzen dieser Variablen für mich hervor:

Diese visuelle Hervorhebung wird durch die Einstellung: aktiviert "match_selection": trueund zeigt deutlich, dass das Erhabene intelligent genug ist, um nur andere Instanzen dieses Zeichens hervorzuheben, bei denen es als Variable relevant ist.

Obwohl dieses Highlight anzeigt, dass es möglich sein sollte, scheint es keine einfache Möglichkeit zu geben, nur diese hervorgehobenen cVariablen automatisch auszuwählen .

Wenn ich alle Instanzen der Variablen cmit mehreren Cursorn schnell umbenennen möchte , entweder mit Quick Add Next ( cmd+D) oder Quick Find All ( ctrl+cmd+G), anstatt nur diese Variable auszuwählen, wird cjede einzelne Instanz des Zeichens 'c' ausgewählt:

Dies ist offensichtlich überhaupt nicht nützlich, da es keine Korrelation mit der tatsächlichen Variablen hat; Es wurden nur blind alle Buchstaben "c" ausgewählt, unabhängig davon, ob es sich um die ausgewählte Variable handelt oder nicht.

Gibt es eine Möglichkeit, Quick Add Next und Quick Find All zu erzwingen , um sich wie die Hervorhebungsregeln zu verhalten, die in der match_selectionEinstellung verwendet werden? Dies wäre in diesem Fall viel nützlicher, als einfach jede Instanz der ausgewählten Zeichen blind auszuwählen.

Vermisse ich etwas? Ich kann nicht finden Schnellsuche Alle Instanzen oder Schnell hinzufügen Weiter Variable Option, oder jede mögliche Weise , das Standardverhalten von anpassen Schnellsuche Alle und Schnell hinzufügen Weiter . Soweit ich das beurteilen kann, besteht meine einzige Möglichkeit darin, entweder jede Instanz von manuell umzubenennen coder einen benutzerdefinierten regulären Ausdruck zu schreiben, um dasselbe Ergebnis wie beim ursprünglichen Hervorhebungsalgorithmus zu erzielen.

Johannes
quelle

Antworten:

23

Der Trick besteht darin, mit einer leeren Auswahl zu beginnen, wobei sich der Cursor links neben dem Wort befindet, das Sie auswählen möchten. Drücken Sie dann CtrlG(oder AltF3unter Windows / Linux), um alle Instanzen dieses Wortes auszuwählen:

lua code

oder drücken Sie D( CtrlDauf Win / Lin), um sie einzeln auszuwählen.

MattDMo
quelle
1
Grundsätzlich genau das, wonach ich gesucht habe, Prost :) -
Johannes
Dies funktioniert, wenn Sie alle in einer Datei haben möchten. Ich möchte nur, dass alle in der Nähe sind, wie Sie es mit Strg + D tun.
Ben Dilts
@ BenDilts Ich bin nicht sicher, was Sie fragen. Was versuchst du zu machen?
MattDo
Angenommen, Sie haben eine Datei mit zehn verschiedenen Methoden, von denen jede eine lokale Variable mit dem Namen "c" hat. Ich möchte nur schnell diejenigen in einem kleineren Bereich als die gesamte Datei auswählen.
Ben Dilts
2
@BenDilts Setzen Sie Ihren Cursor genau links neben den ersten und wählen Sie die aus, die Sie verwenden möchten Ctrl-D, genau wie ich es in meiner Antwort gesagt habe.
MattDMo
0

Wenn Sie alle Vorkommen einer Variablen auswählen und umbenennen, bedeutet dies nicht, dass alle Zeichenfolgen umbenannt werden sollen. Zum Beispiel kann 'c' in vielen Wörtern vorkommen und keine Variablen sein. Um NUR die Vorkommen umzubenennen, die Variablen sind, kann man das Anaconda-Add-On verwenden:

Klicken Sie mit der rechten Maustaste auf die Variable

Wählen Sie unter Cursor Anaconda -> Objekt umbenennen

Ps. Sie können auf die Variable doppelklicken, um die Auswahl zu überprüfen, bevor Sie die Umbenennung ausführen.

Löwe
quelle