เพิ่มตัวเลขให้กับการเลือกแต่ละรายการใน Sublime Text 2 เพิ่มขึ้นหนึ่งครั้งต่อการเลือก


190

มีวิธีเพิ่มหมายเลขที่เพิ่มขึ้นหนึ่งครั้งต่อเคอร์เซอร์ใน Sublime Text 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

ผมขอแนะนำให้ปลั๊กอินข้อความ Pastry คำสั่งลำดับหมายเลขเป็นหนึ่งที่คุณต้อง

ฉันชอบใช้คำสั่ง Insert Nums :

Text Pastry มีบิลด์ที่สนับสนุนไวยากรณ์แทรก Nums โดยระบุตัวเลขสามตัวคั่นด้วยช่องว่างหนึ่งช่อง:

NMP

N: ดัชนีเริ่มต้น

M หมายถึงขนาดของขั้นตอนซึ่งจะถูกเพิ่มไปยังดัชนีสำหรับการเลือกแต่ละรายการ

P ต้อง> 0 และจะใช้ในการรองดัชนีด้วยเลขศูนย์นำหน้า


63
มีประโยชน์อย่างน่าขัน
digitalextremist

1
ข้อความ Pastry: หลายตัวเลือก :: เลือกหลายทาง: ค้นหาและแทนที่
gfullam

ปลั๊กอินนี้ดูเหมือนว่าสมบูรณ์แบบสำหรับฉัน แต่ฉันต้องเพิ่มขึ้นจาก 1 เป็น 5 และทำซ้ำหลายครั้ง ฉันจะทำสิ่งนี้อย่างไร
Chucky

4
ฉันพบว่าฉันต้องเลือกบรรทัดแรกแล้วใช้ Ctrl + Shift + L เพื่อเลือกบรรทัดที่ได้รับผลกระทบทั้งหมดจากนั้นใช้ Text Pastry สำหรับการกำหนดหมายเลขyoutube.com/watch?v=upEieoTwnjs
Manish

13
วิธีนี้ใช้ได้ใน Sublime Text 3 เช่นกัน สำหรับฉันปัญหาหลักคือคุณต้องรู้วิธีเปิดบรรทัดคำสั่ง Past Pastry (CTRL-ALT-N) ดังนั้นเพื่อให้ได้ตัวเลขที่เพิ่มขึ้นจาก 01 ถึง 10 ให้เลือก 10 บรรทัด (Shift + คลิกขวา / ลากคอลัมน์ที่ต้องการ) กด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และการกดปุ่มลัดไม่ทำอะไรเลย มีสิ่งที่ฉันต้องทำเพื่อเปิดใช้งานปลั๊กอินใหม่หรือไม่?
Michael Robinson

1
ใช่ฉันทำอย่างนั้น ปุ่มลัดของฉันคือ: `{" keys ": [" ctrl + alt + i "]," command ":" increment_selection "}` ในการเชื่อมโยงคีย์ - ผู้ใช้ ไม่มีเอาต์พุตในคอนโซล ST2
Michael Robinson

1
ฉันตรวจสอบรหัสทั้งบน Mac และ Windows และควรใช้งานได้ ลองดูที่คอนโซลหลังจากที่คุณพิมพ์ทางลัด: อาจมีข้อผิดพลาดบางอย่างที่อาจช่วยให้เข้าใจปัญหา ( View/Show Console)
Riccardo Marotti

1
ปลั๊กอินที่ยอดเยี่ยม! ข้อเสียเพียงอย่างเดียวคือทุกจำนวนเต็มในการเลือกจะต้องมีค่าเท่ากันทุกประการ
Gabe Hiemstra
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.