2014-09-13 16 views
5

Ich bin ein großer Benutzer von Emacs und ich liebe absolut die Tatsache, dass Sie alles tun können, ohne die Maus zu verwenden. Ich denke, diese Funktion macht Emacs wirklich effizient.erhabener Text mehrere Cursor Shortcut

Ich bin auch ein großer Fan von Sublime Text auf Linux. Ich mag die Mehrfach-Cursor-Funktion, die Sie mit Ctrl+left_mouse_clik aktivieren. Ich habe auch festgestellt, dass Sie auf Shift+alt+arrow_up_or_down klicken können, die einen neuen Cursor auf der oberen oder unteren Zeile erstellen. Also habe ich mich gefragt, ob es einen Weg in sublimen Text gibt, um mehrere Cursor zu erstellen, wo immer du willst, ohne die Maus zu benutzen.

Antwort

5

Eine mögliche Lösung ist die Verwendung von Lesezeichen (wenn Sie es nicht bereits sind). Ich kenne die Linux-Tastenbelegungen nicht von oben, aber Sie können Lesezeichen hinzufügen und dann alle auswählen. Um die Bindungen für Ihre Plattform anzuzeigen, gehen Sie zu Goto -> Bookmarks, sie sollten durch den Befehl aufgelistet werden. Sie können sich auch die Standard-Key-Binding-Datei ansehen.

Eine zweite Lösung ist ein Plugin zu verwenden. Ich schrieb vor einer Weile folgendes. Ich kann nicht wirklich sagen, ob/wie gut es funktioniert, da ich mich nicht erinnern kann. Ein kurzer Test mit mir führt zu der Annahme, dass alles in Ordnung ist.

import sublime 
import sublime_plugin 


class MultiCursorCommand(sublime_plugin.TextCommand): 
    def run(self, edit, action="add"): 
     self.key = "multi_cursor" 
     cursors = self.view.sel() 
     saved_cursors = self.view.get_regions(self.key) 
     if action == "add": 
      self.view.add_regions(self.key, list(cursors) + saved_cursors, "keyword", "", sublime.DRAW_EMPTY) 
     elif action == "show": 
      cursors.add_all(saved_cursors) 
      self.view.add_regions(self.key, []) 
     elif action == "show_begin": 
      saved_cursors += list(cursors) 
      cursors.clear() 
      cursors.add_all([c.begin() for c in saved_cursors]) 
      self.view.add_regions(self.key, []) 
     elif action == "show_end": 
      saved_cursors += list(cursors) 
      cursors.clear() 
      cursors.add_all([c.end() for c in saved_cursors]) 
      self.view.add_regions(self.key, []) 
     elif action == "show_visible": 
      pass 
     elif action == "clear": 
      self.view.add_regions(self.key, []) 
     elif action == "remove": 
      for cursor in cursors: 
       if cursor in saved_cursors: 
        saved_cursors.remove(cursor) 
      self.view.add_regions(self.key, saved_cursors, "keyword", "", sublime.DRAW_EMPTY) 


class RemoveCursorCommand(sublime_plugin.TextCommand): 
    def is_enabled(self): 
     return len(self.view.sel()) > 1 

    def run(self, edit, forward=True): 
     self.view.sel().subtract(self.view.sel()[0 if forward else -1]) 

Tasturbefehle wird etwas aussehen

{ "keys": ["alt+a"], "command": "multi_cursor", "args": {"action": "add"} }, 
{ "keys": ["alt+s"], "command": "multi_cursor", "args": {"action": "show"} } 

Es gibt wahrscheinlich Plugins, die Leute geschrieben haben, die auf Kontrolle der Pakete, die das gleiche tun, ich bin von ihnen einfach nicht bewusst.