webentwicklung-frage-antwort-db.com.de

Wie kann ich jede zweite Zeile mit mehreren Cursorn in Sublime Text auswählen?

Ist es in Sublime Text 2 möglich, jede andere (oder gerade/ungerade) Zeile sofort auszuwählen und mehrere Cursor auf diese Zeilen zu setzen?

Vielen Dank.

148
user2136580
  1. Finden: Ctrl+F
  2. Wenn reguläre Ausdrücke noch nicht aktiviert sind, aktivieren Sie sie: Alt+R
  3. Geben Sie den Ausdruck ein .*\n.*\n
  4. Finde alle: Alt+Enter
  5. Drücken Sie den Pfeil nach links, um die Auswahl aufzuheben. Dabei bleiben nur die Cursor übrig: 
  6. Sie haben jetzt einen Cursor am Anfang jeder ungeraden Zeile. Wenn Sie geradzahlige Zeilen möchten, drücken Sie: 
  7. Je nach Datei fehlt möglicherweise ein Cursor ganz unten in der Datei. Scrolle mit der Maus (verdammt!) Nach unten und halte gedrückt CtrlKlicken Sie auf die Stelle, an der der Cursor fehlen soll, um ihn hinzuzufügen.
354
Joe Daley

Sie können es leicht tun:

  • Wählen Sie alle Zeilen oder das gesamte Dokument aus Ctrl+A
  • Mehrere Selektoren hinzufügen: Ctrl+Shift+L (und unter Mac: Befehl + Umschalt + L)

EDIT:

97
zessx

Ich suchte nach einer Möglichkeit, alternative Zeilen in erhabener Form auszuwählen.

Vielen Dank an Joe Daley für eine sehr gute Antwort. Obwohl mir klar wurde, dass bei Verwendung von Regex nicht die letzte Zeile in der Datei ausgewählt wird, wenn am Ende der Datei keine neue Zeile steht.

Ich wollte diese Antwort verbessern, aber ich scheine im Moment nicht genug Ruf zu haben, um die obige Antwort zu kommentieren.

Sie können die folgende Suchzeichenfolge bei aktiviertem Regex verwenden und dann Alt + Eingabetaste drücken. Gefolgt von einem Pfeil nach links. Dies würde jeweils einen Cursor auf alternative Zeilen setzen (dieselben Schritte wie von Joe Daley erklärt)

^.*\n.*$
11
greenjambi

Du kannst es mit einem Plugin versuchen: Tools/New Plugin...

import sublime_plugin


class ExpandSelectionToOtherLinesCommand(sublime_plugin.TextCommand):
    def run(self, edit):
        self.view.window().run_command("expand_selection", {"to": "line"})
        start_region = self.view.sel()[0]
        self.view.window().run_command("select_all")
        self.view.sel().subtract(start_region)

Speichern Sie diese Datei in Ihrem Packages/User.

Fügen Sie dann die Schlüsselbindung für dieses Plugin hinzu:

{ "keys": ["super+alt+l"], "command": "expand_selection_to_other_lines" }

Dieser Befehl wählt alle anderen Zeilen aus. Wenn Sie andere Zeilen ausgewählt haben, können Sie Split selection into lines Befehl (Ctrl+Shift+LCmd+Shift+L auf Mac).

Wenn Sie alles in einer einzigen Verknüpfung haben möchten, können Sie das Plugin folgendermaßen ändern:

import sublime_plugin


class ExpandSelectionToOtherLinesCommand(sublime_plugin.TextCommand):
    def run(self, edit):
        self.view.window().run_command("expand_selection", {"to": "line"})
        start_region = self.view.sel()[0]
        self.view.window().run_command("select_all")
        self.view.sel().subtract(start_region)
        self.view.window().run_command("split_selection_into_lines")
        self.view.window().run_command("move", {"by": "characters", "forward": False})

Die letzte Zeile dient nur zum Entfernen der Auswahl, wobei mehrere Cursor am Anfang der ausgewählten Zeilen verbleiben.

7