web-dev-qa-db-ja.com

Sublime Text 2の各選択に番号を追加し、選択ごとに1ずつ増加します

Sublime Text 2でカーソルごとに1回増加する番号を挿入する方法はありますか?

例、|をカーソルとして:

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|

この機能はネイティブに存在しますか、それを提供するプラグインがありますか?

188

プラグイン Text Pastry をお勧めします。 Number Sequenceコマンド は必要なものです。

Numsコマンドを挿入 を使用することを好みます:

Text Pastryは、1つのスペースで区切られた3つの数字を提供することで、Insert Nums構文をサポートしています。

N M P

N:開始インデックス。

Mは、各選択のインデックスに追加されるステップサイズを表します。

Pは0より大きい必要があり、インデックスに先行ゼロを埋め込むために使用されます。

324
aanton

あなたが求めていることを達成する唯一の方法は、独自のプラグインを作成することだと思います。

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" }

これで、必要な場所にカーソルを配置できます。

enter image description here

カウンターの開始番号を挿入します(この場合は1):

enter image description here

入力した番号を選択します(shift<—):

enter image description here

ショートカットを入力します。

enter image description here

106