Додайте число до кожного вибору в піднесеному тексті 2, збільшеному один раз за вибір


190

Чи є спосіб додати вставити число, яке збільшується один раз на курсор, у піднесений текст 2?

Приклад, |як курсор:

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

Бажаний результат:

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

Чи існує ця функціональна функція або є плагін, що забезпечує її?

Відповіді:


331

Я рекомендую текстовий кондитерський модуль для плагінів . Команда Послідовність числа - це та, яка вам потрібна.

Я вважаю за краще використовувати команду Insert Nums :

Текстове тісто має збірку в підтримку синтаксису Insert Nums, надаючи три числа, розділені одним пробілом:

NMP

N: індекс старту.

M представляє розмір кроку, який буде доданий до індексу для кожного вибору.

P повинен бути> 0 і буде використовуватися для прокладки індексу з провідними нулями.


63
Смішно корисна.
digitalextremist

1
Текстова випічка: Мульти-вибір :: Мульти-вибір: Знайти та замінити
gfullam

Цей плагін мені здається ідеальним. Але мені потрібно наростити від 1 до 5 і повторити кілька разів. Як би я пішов робити це?
Чаккі

4
Я виявив, що спочатку потрібно вибрати рядки та використати Ctrl + Shift + L для вибору всіх постраждалих рядків, а потім використовувати текстове тісто для нумерації, youtube.com/watch?v=upEieoTwnjs
Manish

13
Це рішення працює і в Sublime Text 3. Для мене головним питанням було те, що вам потрібно знати, як відкрити командний рядок Text Pastry (CTRL-ALT-N). Отже, щоб отримати збільшення номерів від 01 до 10, виберіть 10 рядків (зсув + клацніть правою кнопкою миші / перетягніть потрібні стовпчики), натисніть CTRL-ALT-N, а потім наберіть1 1 2
Gus

107

Я думаю, що єдиний спосіб досягти того, що ви просите, - це створити власний плагін.

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)

Збережіть його у своєму Userкаталозі. Потім додайте ярлик до свого Key Bindings - User:

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

Тепер ви можете розмістити курсори там, де вам потрібно:

введіть тут опис зображення

Вставте число, з якого має починатися лічильник (у цьому випадку 1):

введіть тут опис зображення

Виберіть номер, який ви ввели ( shift<—):

введіть тут опис зображення

Введіть ярлик:

введіть тут опис зображення


5
Чудова відповідь, дуже корисна. Я зроблю це, як тільки отримаю можливість.
Майкл Робінсон

Я намагався зробити цей плагін, але не зміг змусити його працювати - розміщення декількох курсорів, вставлення 1та натискання гарячої клавіші нічого не робить. Чи потрібно щось робити, щоб активувати новий плагін?
Майкл Робінсон

1
Так, я це зробив. Моя гаряча клавіша: `{" keys ": [" ctrl + alt + i "]," command ":" increment_selection "}`, у Key Bindings - User. Немає виводу в консолі ST2
Майкл Робінсон

1
Я перевірив код і на Mac, і в Windows, і він повинен працювати. Спробуйте подивитись на консоль після введення ярлика: можливо, є якась помилка, яка могла б допомогти зрозуміти проблему ( View/Show Console).
Ріккардо Маротті

1
Чудовий плагін! Єдиний мінус полягає в тому, що кожне ціле число у виділенні має бути точно однакового значення.
Гейб
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.