Fügen Sie jeder Auswahl in Sublime Text 2 eine Zahl hinzu, die einmal pro Auswahl erhöht wird


190

Gibt es eine Möglichkeit, eine Zahl einzufügen, die in Sublime Text 2 einmal pro Cursor erhöht wird?

Beispiel mit |als Cursor:

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

Erwünschtes Ergebnis:

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

Existiert diese Funktionalität nativ oder gibt es ein Plugin, das sie bereitstellt?

Antworten:


330

Ich empfehle das Plugin Text Pastry . Der Befehl Zahlenfolge ist derjenige, den Sie benötigen.

Ich bevorzuge den Befehl "Zahlen einfügen" :

Text Pastry unterstützt die Syntax zum Einfügen von Zahlen, indem drei durch ein Leerzeichen getrennte Zahlen bereitgestellt werden:

NMP

N: der Startindex.

M steht für die Schrittgröße, die für jede Auswahl zum Index hinzugefügt wird.

P muss> 0 sein und wird verwendet, um den Index mit führenden Nullen aufzufüllen.


63
Lächerlich hilfreich.
digitalxtremist

1
Text Gebäck: Mehrfachauswahl :: Mehrfachauswahl: Suchen & Ersetzen
Gfullam

Dieses Plugin scheint perfekt für mich zu sein. Aber ich muss von 1 auf 5 erhöhen und mehrmals wiederholen. Wie würde ich das machen?
Chucky

4
Ich stellte fest, dass ich zuerst die Zeilen auswählen und Strg + Umschalt + L verwenden musste, um alle betroffenen Zeilen auszuwählen, und dann Text Pastry zur Nummerierung verwenden musste. Youtube.com/watch?v=upEieoTwnjs
Manish

13
Diese Lösung funktioniert auch in Sublime Text 3. Für mich war das Hauptproblem, dass Sie wissen müssen, wie man die Text Pastry-Befehlszeile (STRG-ALT-N) öffnet. Um inkrementelle Zahlen von 01 auf 10 zu erhalten, wählen Sie 10 Zeilen aus (Umschalt + Rechtsklick / Ziehen der gewünschten Spalten), drücken Sie CTRL-ALT-Nund geben Sie1 1 2
Gus

107

Ich denke, dass der einzige Weg, um das zu erreichen, was Sie verlangen, darin besteht, ein eigenes Plugin zu erstellen.

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)

Speichern Sie es in Ihrem UserVerzeichnis. Fügen Sie dann eine Verknüpfung zu Ihrem hinzu Key Bindings - User:

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

Jetzt können Sie die Cursor dort platzieren, wo Sie sie benötigen:

Geben Sie hier die Bildbeschreibung ein

Geben Sie die Nummer ein, ab der der Zähler beginnen soll (in diesem Fall 1):

Geben Sie hier die Bildbeschreibung ein

Wählen Sie die eingegebene Nummer aus ( shift<—):

Geben Sie hier die Bildbeschreibung ein

Geben Sie die Verknüpfung ein:

Geben Sie hier die Bildbeschreibung ein


5
Tolle Antwort, sehr hilfreich. Ich werde das tun, sobald ich eine Chance bekomme.
Michael Robinson

Ich habe versucht, dieses Plugin zu erstellen, konnte es jedoch nicht zum Laufen bringen. Das Platzieren mehrerer Cursor, das Einfügen 1und Drücken meines Hotkeys führt zu nichts. Muss ich etwas tun, um ein neues Plugin zu aktivieren?
Michael Robinson

1
Ja, das habe ich getan. Mein Hotkey lautet: `{" keys ": [" ctrl + alt + i "]," command ":" increment_selection "}`, in Key Bindings - User. Keine Ausgabe in der ST2-Konsole
Michael Robinson

1
Ich habe den Code sowohl unter Mac als auch unter Windows überprüft und er sollte funktionieren. Versuchen Sie, sich die Konsole anzusehen, nachdem Sie die Verknüpfung eingegeben haben: Möglicherweise liegt ein Fehler vor, der zum Verständnis des Problems beitragen kann ( View/Show Console).
Riccardo Marotti

1
Tolles Plugin! Der einzige Nachteil ist, dass jede Ganzzahl in der Auswahl genau den gleichen Wert haben muss.
Gabe Hiemstra
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.