Thêm một số cho mỗi lựa chọn trong Văn bản cao siêu 2, tăng một lần cho mỗi lựa chọn


190

Có cách nào để thêm chèn một số được tăng một lần cho mỗi con trỏ trong Sublime Text 2 không?

Ví dụ, với |con trỏ:

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

Kết quả như ý:

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

Liệu chức năng này tồn tại nguyên bản, hoặc có một plugin cung cấp nó?

Câu trả lời:


330

Tôi khuyên dùng plugin Text Pastry . Lệnh Number Sequencelệnh bạn cần.

Tôi thích sử dụng lệnh Chèn Nums :

Text Pastry có một bản dựng hỗ trợ cho cú pháp Chèn số bằng cách cung cấp ba số cách nhau bởi một khoảng trắng:

NMP

N: chỉ số bắt đầu.

M đại diện cho kích thước bước sẽ được thêm vào chỉ mục cho mỗi lựa chọn.

P phải> 0 và sẽ được sử dụng để đệm chỉ mục với các số 0 đứng đầu.


63
Vô cùng hữu ích.
Digitalextremist

1
Text Pastry: Multi-select :: Multi-select: Find & Thay thế
gfullam

Plugin này có vẻ hoàn hảo đối với tôi. Nhưng tôi cần tăng từ 1 lên 5 và lặp lại nhiều lần. Tôi sẽ đi đâu để tới đó?
Chucky

4
Tôi thấy rằng trước tiên tôi phải chọn các dòng và sử dụng Ctrl + Shift + L để chọn tất cả các dòng bị ảnh hưởng, sau đó sử dụng Text Pastry để đánh số, youtube.com/watch?v=upEieoTwnjs
Manish

13
Giải pháp này cũng hoạt động trong Sublime Text 3. Đối với tôi, vấn đề chính là bạn cần biết cách mở dòng lệnh Text Pastry (CTRL-ALT-N). Vì vậy, để có được các số tăng dần từ 01 đến 10, hãy chọn 10 dòng (shift + nhấp chuột phải / kéo các cột mong muốn), nhấn CTRL-ALT-N, sau đó nhập1 1 2
Gus

107

Tôi nghĩ rằng cách duy nhất để đạt được những gì bạn yêu cầu là tạo plugin của riêng bạn.

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)

Lưu nó trong Userthư mục của bạn . Sau đó thêm một lối tắt vào Key Bindings - User:

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

Bây giờ bạn có thể đặt các con trỏ nơi bạn cần:

nhập mô tả hình ảnh ở đây

Chèn số mà bộ đếm sẽ bắt đầu từ (trong trường hợp này là 1):

nhập mô tả hình ảnh ở đây

Chọn số bạn đã nhập ( shift<—):

nhập mô tả hình ảnh ở đây

Nhập phím tắt:

nhập mô tả hình ảnh ở đây


5
Câu trả lời tuyệt vời, rất hữu ích. Tôi sẽ làm điều này ngay khi tôi có cơ hội.
Michael Robinson

Tôi đã cố gắng để tạo plugin này, nhưng không thể làm cho nó hoạt động - đặt nhiều con trỏ, chèn 1và nhấn phím nóng của tôi không làm gì cả. Có thứ gì tôi cần để kích hoạt plugin mới không?
Michael Robinson

1
Có tôi đã làm điều đó. Phím nóng của tôi là: `{" phím ": [" ctrl + alt + i "]," lệnh ":" gia tăng_selection "}`, trong Ràng buộc khóa - Người dùng. Không có đầu ra trong bảng điều khiển ST2
Michael Robinson

1
Tôi đã xác minh mã cả trên Mac và Windows và nó sẽ hoạt động. Hãy thử nhìn vào bảng điều khiển sau khi bạn đã gõ phím tắt: có thể có một số lỗi có thể giúp hiểu vấn đề ( View/Show Console).
Riccardo Marotti

1
Plugin tuyệt vời! Nhược điểm duy nhất là mọi số nguyên trong lựa chọn cần phải có cùng giá trị.
Gabe Hiemstra
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.