texte sublime raccourci à curseur multiple

je suis un énorme utilisateur d'emacs et j'aime absolument le fait que vous pouvez tout faire sans utiliser la souris. Je pense que cette fonctionnalité rend emacs vraiment efficace.

je suis aussi un grand fan de Sublime Text on Linux. J'aime la fonctionnalité de curseur multiple que vous activez avec Ctrl+left_mouse_clik . J'ai aussi trouvé que vous pouvez cliquer sur Shift+alt+arrow_up_or_down qui crée un nouveau curseur sur la ligne ci-dessus ou ci-dessous. Donc je me demandais s'il y avait un moyen dans le texte sublime de créer plusieurs curseur où vous voulez sans utiliser la souris.

5
demandé sur Adam Sinclair 2014-09-14 00:29:01

2 réponses

une solution possible est d'utiliser des signets (si vous ne l'êtes pas déjà). Je ne connais pas les fixations des clés Linux sur le dessus de ma tête, mais vous pouvez ajouter des signets, puis sélectionner tout. Pour voir les fixations de votre plate-forme, allez à Goto -> Bookmarks , elles doivent être listées par la commande. Vous pouvez également jeter un coup d'oeil au fichier de liaison de clé par défaut.

Une deuxième solution est d'utiliser un plugin. J'ai écrit il y a longtemps. Je ne peux pas vraiment dire si/Comment ça marche, comme je ne peux pas rappeler. Un test rapide m'amène à croire que ça marche.

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])

les fixations de clés ressembleront à quelque chose comme

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

il y a probablement des plugins que les gens ont écrits qui sont sur le contrôle des paquets qui font la même chose, Je ne suis pas au courant d'eux.

5
répondu skuroda 2014-09-13 21:46:18

je pense que PowerCursors est ce que vous êtes la recherche pour

https://packagecontrol.io/packages/PowerCursors

1
répondu somedirection 2015-04-10 10:43:22