ฉันจะเลือกบรรทัดอื่นที่มีเคอร์เซอร์หลายตัวใน Sublime Text ได้อย่างไร


162

ใน Sublime Text 2 เป็นไปได้หรือไม่ที่จะเลือกบรรทัดอื่น (หรือคี่ / คู่) ในทันทีและวางเคอร์เซอร์หลายตัวบนบรรทัดเหล่านั้น?

ขอบคุณ


5
คุณไม่ต้องการรับคำตอบใช่ไหม
Martin Thoma

คำตอบ:


381
  1. ค้นหา: Ctrl+F
  2. หากยังไม่ได้เปิดใช้งานนิพจน์ทั่วไปให้เปิดใช้งาน: Alt+R
  3. พิมพ์ในนิพจน์ .*\n.*\n
  4. ค้นหาทั้งหมด: Alt+Enter
  5. กดลูกศรซ้ายเพื่อกำจัดสิ่งที่เลือกทิ้งเคอร์เซอร์ไว้:
  6. ตอนนี้คุณมีเคอร์เซอร์ที่จุดเริ่มต้นของทุกบรรทัดคี่ หากคุณต้องการหมายเลขที่มีเลขคู่ให้กด:
  7. อาจมีเคอร์เซอร์หายไปหนึ่งอันที่ด้านล่างของไฟล์ทั้งนี้ขึ้นอยู่กับไฟล์ ใช้เมาส์ (ด่า!) เลื่อนไปที่ด้านล่างกดค้างไว้Ctrlและคลิกที่เคอร์เซอร์ที่ขาดหายไปควรเพิ่มเข้าไป

83
คุณยังสามารถใช้(.*\n){10}สำหรับทุกๆ 10 บรรทัด
Joe Daley


3
ดี! (.*(\n|$)){2}วิธีการแก้ปัญหาของ @ zessx รวมบรรทัดสุดท้าย
woojoo666

3
สิ่งที่ควรทราบใน Sublime 2 ที่ทำงานบน OS X 10.11.5 ทางลัดสำหรับการค้นหา RegEx คือ Alt + Command + R นอกจากนี้คุณยังสามารถเปิดใช้งานการค้นหา RegEx โดยกด Command + F จากนั้นคลิกไอคอนที่มีลักษณะดังนี้: *]
lustig

97

คุณสามารถทำได้อย่างง่ายดาย:

  • เลือกทุกบรรทัดหรือทั้งเอกสารCtrl+A
  • เพิ่มตัวเลือกหลายตัว: Ctrl+ Shift+ L(และใน Mac: Command + Shift + L)

แก้ไข:


12
แม้ว่าจะไม่ใช่คำตอบที่ถูกต้องสำหรับคำถามนี้นี่คือสิ่งที่ฉันต้องการ ขอบคุณสำหรับการแบ่งปัน
Rajani Karuturi

คำใบ้ที่ยอดเยี่ยมและเรียบง่าย!
ฆา

5
วิธีนี้เป็นสิ่งที่ฉันต้องการ แต่ไม่ใช่สิ่งที่ OP ต้องการ
กรีด

13

ฉันกำลังค้นหาวิธีการเลือกบรรทัดสำรองในประเสริฐ

ขอบคุณ Joe Daley สำหรับคำตอบที่ดีมาก แม้ว่าฉันจะรู้ว่าถ้าคุณใช้ regex มันจะไม่เลือกบรรทัดสุดท้ายในไฟล์หากไม่มีบรรทัดใหม่ที่ท้ายไฟล์

ฉันต้องการที่จะปรับปรุงคำตอบนั้น แต่ดูเหมือนจะไม่มีชื่อเสียงเพียงพอที่จะแสดงความคิดเห็นในคำตอบข้างต้น

คุณสามารถใช้สตริงการค้นหาต่อไปนี้เมื่อเปิด regex แล้วกด alt + enter ตามด้วยลูกศรซ้าย สิ่งนี้จะทำให้เคอร์เซอร์แต่ละตัวอยู่ในบรรทัดสำรอง (ขั้นตอนเดียวกับที่โจเดลีอธิบายไว้)

^.*\n.*$

7

คุณสามารถลองกับปลั๊กอิน: Tools/New Plugin...

import sublime_plugin


class ExpandSelectionToOtherLinesCommand(sublime_plugin.TextCommand):
    def run(self, edit):
        self.view.window().run_command("expand_selection", {"to": "line"})
        start_region = self.view.sel()[0]
        self.view.window().run_command("select_all")
        self.view.sel().subtract(start_region)

Packages/Userบันทึกไฟล์นี้ไว้ใน

จากนั้นเพิ่มการเชื่อมโยงคีย์สำหรับปลั๊กอินนั้น:

{ "keys": ["super+alt+l"], "command": "expand_selection_to_other_lines" }

คำสั่งนี้จะเลือกบรรทัดอื่นทั้งหมด เมื่อคุณเลือกบรรทัดอื่นคุณสามารถใช้Split selection into linesคำสั่ง ( Ctrl+ Shift+ L, Cmd+ Shift+ Lบน Mac)

หากคุณต้องการให้ทุก ๆ ส่วนภายในทางลัดเดียวคุณสามารถแก้ไขปลั๊กอินเช่นนี้:

import sublime_plugin


class ExpandSelectionToOtherLinesCommand(sublime_plugin.TextCommand):
    def run(self, edit):
        self.view.window().run_command("expand_selection", {"to": "line"})
        start_region = self.view.sel()[0]
        self.view.window().run_command("select_all")
        self.view.sel().subtract(start_region)
        self.view.window().run_command("split_selection_into_lines")
        self.view.window().run_command("move", {"by": "characters", "forward": False})

บรรทัดสุดท้ายเป็นเพียงการลบสิ่งที่เลือกทิ้งเคอร์เซอร์หลายตัวไว้ที่จุดเริ่มต้นของบรรทัดที่เลือก


1
ว้าวสิ่งนี้ดูมีแนวโน้ม - ฉันจะลองใช้ทันทีที่ฉันทำได้!
user2136580

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