web-dev-qa-db-fra.com

Ajoutez un numéro à chaque sélection dans Sublime Text 2, incrémenté une fois par sélection

Existe-t-il un moyen d'ajouter un nombre incrémenté une fois par curseur dans Sublime Text 2?

Exemple, avec | comme curseur:

Lorem ipsum dolor sit amet, |
vehicula sed, mauris nam eget| 
neque a pede nullam, ducimus adipiscing, 
vestibulum pellentesque pellentesque laoreet faucibus.|

Résultat désiré:

Lorem ipsum dolor sit amet, 1|
vehicula sed, mauris nam eget2| 
neque a pede nullam, ducimus adipiscing, 
vestibulum pellentesque pellentesque laoreet faucibus.3|

Cette fonctionnalité existe-t-elle de manière native ou existe-t-il un plugin la fournissant?

188
Michael Robinson

Je recommande le plugin Text Pastry . La commande Séquence numérique est celle dont vous avez besoin.

Je préfère utiliser le commande Insert Nums :

Text Pastry prend en charge la syntaxe Insert Nums en fournissant trois chiffres séparés par un espace:

N M P

N: l'index de départ.

M représente la taille de l'étape qui sera ajoutée à l'index pour chaque sélection.

P doit être> 0 et sera utilisé pour compléter l’indice avec des zéros au début.

326
aanton

Je pense que la seule façon de réaliser ce que vous demandez est de créer votre propre plugin.

Tools/New Plugin...:

import sublime_plugin


class IncrementSelectionCommand(sublime_plugin.TextCommand):
    def run(self, edit):
        start_value = int(self.view.substr(self.view.sel()[0]))

        counter = 0
        for selection in self.view.sel():
            self.view.insert(edit, selection.begin(), str(start_value + counter))
            counter = counter + 1

        for selection in self.view.sel():
            self.view.erase(edit, selection)

Enregistrez-le dans votre répertoire User. Ajoutez ensuite un raccourci à votre Key Bindings - User:

{ "keys": ["YOUR_SHORTCUT"], "command": "increment_selection" }

Maintenant, vous pouvez placer les curseurs où vous avez besoin:

enter image description here

Insérez le numéro de départ du compteur (dans ce cas, 1):

enter image description here

Sélectionnez le numéro que vous avez tapé (shift<—):

enter image description here

Tapez le raccourci:

enter image description here

106
Riccardo Marotti