2012-08-02 5 views
12

Gibt es eine Möglichkeit, Spalte mit Tastaturkürzel auszuwählen und Auswahl bis zum Ende jeder Zeile zu erweitern?Sublime text 2 - Spalte auswählen bis zum Ende der Zeile

Gegenwärtig, wenn der Cursor das Ende der Zeile erreicht, springt er zum Anfang des nächsten.

Wie kann ich dieses Verhalten vermeiden, ohne Maus zu verwenden?

Antwort

25

Wenn ich Ihre Frage richtig verstanden habe, können Sie mit den folgenden Tasten (Beispiel mit OS X keybindings) tun:

  1. Strg + Shift + Pfeil nach oben oder Strg + Shift + Pfeil nach unten eine Spalte auswählen in mehreren Zeilen.
  2. Cmd + Umschalt + Rechts (Umschalt + Ende bei anderen Betriebssystemen), um die Auswahl bis zum Ende jeder Zeile zu erweitern.

Die entsprechenden Tastenbelegungen für alle Betriebssysteme: http://www.sublimetext.com/docs/2/column_selection.html

+3

Umschalt + Ende - genial! Danke. – alexy2k

+0

Cmd-Shift-Right ging zum nächsten Wort in jeder ausgewählten Zeile für mich. Cmd-Rechts ging an das Ende der Zeile für alle ausgewählten Zeilen. – velotron

3

Sie können auch das gleiche Ergebnis durch die folgenden Schritte erhalten:

  1. Auswahlleitungen durch Shift + Up/Down
  2. Split-Auswahl in Zeilen (von Selektionen): Cmd + Shift + L
1
import sublime, sublime_plugin 

class SelectToEndoflineCommand(sublime_plugin.TextCommand): 
    def run(self, edit): 
     caretPos = self.view.sel()[0].begin() 
     self.view.sel().add(sublime.Region(caretPos, self.view.line(caretPos).end())) 

class SelectToBegoflineCommand(sublime_plugin.TextCommand): 
    def run(self, edit): 
     caretPos = self.view.sel()[0].begin() 
     self.view.sel().add(sublime.Region(caretPos, self.view.line(caretPos).begin())) 
2

robertcollier4's Antwort löste die Frage für mich. Aus irgendeinem Grund wird die Super + Shift + rechte Standard-OSX-Tastenkombination in Sublime Text 3 überschrieben, und es gibt keine Möglichkeit, sie in den Benutzer-Tastenbindungen richtig zu lösen.

Robert Code hinzufügen, um ein Plugin zu Tools > New Plugin gehen, fügen Sie den Code, speichern und einen Verweis darauf in Ihrem Keymapping hinzufügen:

[ 
    { "keys": ["super+shift+right"], "command": "SelectToEndoflineCommand" } 
] 

Die einzige Änderung, die ich ihm machte, war

sich ändern
caretPos = self.view.sel()[0].begin() 

zu

caretPos = self.view.sel()[0].end() 

für die EOL-Funktion, sonst wird es nicht korrekt funktionieren für mehrzeilige Auswahl.

+0

In SublimeText 2 musste ich zum "normalisierten" Befehlsnamen wechseln: "command": "select_to_endofline" – Cabadath

4

Ich kam auf diese Antwort, weil ich alles, wie man den Cursor in den Zeilen gesucht bis EOF (Ende der Datei) ohne ctrl + alt + / (nicht praktisch für mehr als ein paar Dutzend Linien), so dass ich einen bestimmten Teil dieser Linien trimmen oder auswählen konnte.

So landete ich schließlich in den sublime text documentation, wo ich gefunden:

  • ctrl + Verschiebung + L die Cursor in allen Linien ausgewählt und am Ende von ihnen stellen wird (EOL):
    • diese Zeilen mit ctrl + L auswählen (oder ctrl + shift + Ende zur Auswahl bis EOF);
    • Presse ctrl + Verschiebung + L zu Cursor bei EOLs hinzuzufügen;
    • jetzt können Sie alle Cursor gleichzeitig durch Wörter mit ctrl bewegen + / oder den Bols/EOLs mit Startseite/End), wenn Sie auch Verschiebung drücken werden Sie wählen Sie, während Sie sie bewegen;
  • aber das nützlichste Feature ist definitiv die Mitte Mausklick + ziehen die die Linien auswählt und gleichzeitig legt Cursor am Ende dieser Auswahl:
    • BONUS: Wenn Sie nur wollen Platziere die Cursor auf EOLs (ohne Auswahl) klicke auf den Hintergrund (nach den EOLs) und ziehe! (Wenn die Linien zu lang sind, können Sie die Minikarte verwenden, um Ihren Ansichtsbildschirm an der längsten Linie zu positionieren);
    • jetzt können Sie alle Cursor gleichzeitig durch Wörter mit ctrl + / oder den Bols mit Startseite) bewegen, wenn Sie auch Verschiebung drücken Sie wählen, während sie in Bewegung.