ข้อความประเสริฐ 2: วิธีลบบรรทัดว่าง / ว่างเปล่า


271

สมมติว่าฉันมีไฟล์ข้อความที่มีเก้าบรรทัดต่อไปนี้:

foo

bar

baz

qux

quux

ฉันจะใช้ Sublime Text 2 เพื่อลบบรรทัดว่าง / ว่างทั้งสี่ออกจากห้าบรรทัดได้อย่างไร

คำตอบ:


658

เลือกข้อความ

กด:

  • Ctrl+ Hบนพีซีหรือ
  • Command+ Alt+ Fบน Mac หรือ
  • คลิกค้นหา -> แทนที่

ตรวจสอบให้แน่ใจว่าคุณได้เลือก 'นิพจน์ปกติ' โดยกด:

  • Alt+ Rบนพีซีหรือ
  • Command+ Alt+ Rบน Mac หรือ
  • คลิก.*ที่กล่องค้นหา

หาอะไร: ^\n

แทนที่ด้วย: (ไม่มีอะไรให้เว้นว่างไว้)


3
ได้ผลดีขอบคุณ! มีวิธีผูกที่ค้นหา / แทนที่แป้นพิมพ์ลัดหรืออย่างใดบันทึกไว้สำหรับการเข้าถึงด่วน? ฉัน googled มันและไม่พบอะไรเลย
นิค

46
ข้อเสนอแนะขนาดเล็กใช้^(\r|\n\r?)เพื่อครอบคลุมการขึ้นบรรทัดใหม่ทั้งหมด
Haris Krajina

5
สำหรับฉัน (Sublime Text 2) ทางลัดคือ (Alt + Cmd + F) ตามที่อธิบายโดย Hugp Corra
Maxence

24
วิธีที่ดีกว่าที่จะหาบรรทัดว่างทั้งหมด (รวมถึงคนที่มีช่องว่าง) จะเป็น: ^[\s]*?[\n\r]+
ลัง

5
@ อัตราที่คุณไม่ต้องการ?เนื่องจาก*ยังมีค่าเท่ากับศูนย์ที่เกิดขึ้นและ\s*จะจับคู่ส่วนเสริม '\ r' เมื่อเช่นการแก้ไขข้อความ windows ในระบบ linux ดังนั้น^\s*$เคล็ดลับ
drevicko

67

regexp ในคำตอบของ Hugo นั้นถูกต้องเมื่อไม่มีช่องว่างในบรรทัด ในกรณีที่มี regexp พื้นที่สามารถ^\s+$


32
นั่นถือว่ามีช่องว่าง นอกจากนี้ยังใช้ไม่ได้กับการแทนที่บรรทัดด้วยสิ่งใดเลย ลอง^[\s]*?[\n\r]+แทน ฉันทดสอบแล้วว่ามันใช้งานได้
ลังไม้

24

นอกจากนี้ยังมีปลั๊กอิน ST2 / ST3 บางอย่างสำหรับงานดังกล่าว ฉันชอบสองคนนี้:

วิธีแรกมีสองวิธีในการลบบรรทัดว่าง / ไม่จำเป็นออก หนึ่งในนั้นเรียกว่าDelete Surplus Blank Linesเท่ห์ ลบเฉพาะบรรทัดเหล่านั้นที่ตามด้วยบรรทัดว่างอื่น


10

โซลูชันค้นหา / แทนที่:

Regex ค้นหา:\s+

แทนที่ด้วย: // เว้นวรรคเดียว


3
ที่จริงแล้วนี่: $ \ s +
kris

8

ไม่ทราบด้วยซ้ำว่าสิ่งทั้งหมดนี้ทำงานได้อย่างไร แต่ฉันพยายาม ^\s*$แล้วก็ใช้งานไม่ได้

สิ่งนี้^\s*ใช้ได้สำหรับฉัน

{ข้อความประเสริฐ 3}


7

ฉันต้องใช้:

แทนที่ \ n ^ \ s * \ n ด้วย \ n

https://github.com/NicholasBuse/sublime_DeleteBlankLinesปลั๊กอินไม่ได้ทำอะไรที่ทุกคน


2
ตรวจสอบให้แน่ใจว่าคุณเลือกพื้นที่ที่คุณต้องการให้มีผลแล้วใช้ปุ่มทางลัดที่เกี่ยวข้อง Windows : Ctrl + Alt + Backspace (ลบบรรทัดว่าง) Ctrl + Alt + Shift + Backspace (ลบบรรทัดว่างส่วนเกิน) OSX : Ctrl + Alt + Delete (ลบบรรทัดว่าง) Ctrl + Alt + Shift + ลบ (ลบบรรทัดว่าง) Linux : Ctrl + Alt + Backspace (ลบบรรทัดว่าง) Ctrl + Alt + Shift + Backspace (ลบบรรทัดว่างส่วนเกิน)
Xtremefaith

5

ข้อความประเสริฐ 2 & 3

ความคิดเห็นของ @crates ทำงานสำหรับฉัน

ขั้นตอนที่ 1: กดที่ctrl+H

ขั้นตอนที่ 2: กดปุ่ม RegEX

ขั้นตอนที่ 3: เขียนสิ่งนี้ในการค้นหา: ^[\s]*?[\n\r]+

ขั้นตอนที่ 4: แทนที่ทั้งหมด



3

คุณกำลังมองหาสิ่งนี้:

^\n|^\s+$

จะไม่ลบบรรทัดหากมีเนื้อหาที่มีช่องว่างหรือแท็บด้านหน้า>

เช่น:

สิ่งเหล่านี้จะไม่ถูกลบ: ... space ... abc

... แท็บ ... abc

นี่จะ:

... พื้นที่ ... ... ไม่มีอะไรอื่น ...

... แท็บ ... ... ไม่มีอะไรอื่น ...


3

การใช้ตัวเลือกหลายตัว: เลือกตัวแบ่งบรรทัดหนึ่งคู่จากนั้นใช้การค้นหาด่วนทั้งหมด ( Alt+ F3) หรือเพิ่มด่วนถัดไป ( Ctrl+ D) ซ้ำ ๆ เพื่อเลือกทั้งหมด; จากนั้นกดEnterเพื่อแทนที่พวกเขาด้วยตัวแบ่งบรรทัดเดียว


1
ในเอกสารขนาดใหญ่ฉันพบข้อขัดข้องนี้ประเสริฐ
Thalecress

3

พวกเขาเป็นวิธีที่ง่ายกว่าในการทำโดยไม่ต้อง regex คุณเพียงแค่เลือกข้อความทั้งหมด จากนั้นไปที่: แก้ไข -> Permute Lines -> Unique

นั่นคือทั้งหมดที่ และบรรทัดว่างทั้งหมดจะถูกลบ


การดำเนินการนี้จะลบบรรทัดที่ไม่ซ้ำกันทั้งหมด ไม่ใช่แค่ช่องว่าง ดังนั้นสมมติว่าคุณมี HTML ที่มีหลายบรรทัดเป็นหนึ่งปิด </div> มันจะลบทั้งหมดยกเว้นบรรทัดแรก หรือในรหัสมันจะลบการปิดทั้งหมดของคุณ} สิ่งนี้ไม่น่าเชื่อถือที่จะลบเพียงแค่บรรทัดว่างให้เข้าใจสิ่งที่มันทำ
Ivan McA

2

อีกวิธีหนึ่งคุณสามารถใช้บรรทัดคำสั่งcc.dblของ ConyEdit (ปลั๊กอิน) เพื่อลบบรรทัดว่างหรือบรรทัดว่าง


1

นอกจากนี้ยังมี "เข้าร่วมเส้น" หากบน OSX ให้เลือกข้อความทั้งหมดของคุณแล้วกด CMD-J สองสามครั้งและมันจะยุบการเลือกของคุณตามบรรทัดลบการขึ้นบรรทัดใหม่

แก้ไข: วิธีนี้จะทำให้คุณมีทุกสิ่งในบรรทัดเดียวซึ่งไม่ใช่สิ่งที่คุณขอ


2
ฉันเห็นว่าคุณกำลังจะมีนี้แม้ว่า .. นี้ผลข้อเสนอแนะในการลากเนื้อหาทั้งหมดเป็นหนึ่งในสาย แต่แมโครจะทำให้งานนี้: (ปุ่ม OSX) ctrl-q(บันทึกแมโคร) cmd-j(ร่วมสาย) down arrow, ctrl-q(แมโครจบ) . จากนั้นshift-ctrl-qให้ทำซ้ำได้บ่อยตามต้องการ ...
ptim

1

สำหรับผู้ที่อยากรู้อยากเห็นโปรแกรมแก้ไขข้อความประเสริฐเอกสารทางการอาจจะน่าสนใจ!


1

มีแพ็คเกจที่ยอดเยี่ยม (สำหรับ Sublime 2 & 3) เรียกว่า ' Trimmer ' ซึ่งจะลบบรรทัดว่างเปล่า มันยังทำสิ่งที่มีประโยชน์อื่น ๆ อีกมากมาย

อ้างอิงสิ่งนี้: https://packagecontrol.io/packages/Trimmer


0

ในกรณีของฉันบางบรรทัดที่ว่างเปล่ามีช่องว่างความกว้างเป็นศูนย์อักขระ(U + 200b) หากต้องการกำจัดบรรทัดว่างรวมถึงบรรทัดที่มีอักขระ Unicode นี้:

\s\x{200b}|^\s

0

ใช้ find / replace ลองวางส่วนที่เลือกเริ่มต้นที่ท้ายบรรทัดด้านบนบรรทัดว่างและสิ้นสุดที่จุดเริ่มต้นของบรรทัดหลังช่องว่าง สิ่งนี้ใช้ได้กับบรรทัดว่างเดี่ยว คุณสามารถทำซ้ำกระบวนการสำหรับบรรทัดว่างหลายบรรทัดได้เช่นกัน CTRL- Hใส่การเลือกของคุณในกล่องค้นหาและวางบรรทัดใหม่หนึ่งบรรทัดในกล่องแทนที่ด้วยการคัดลอก / วางหรือวิธีอื่น


0

ในการค้นหาช่องว่างพิเศษและบรรทัดว่างให้กด Ctrl+ Shift+ F เลือกค้นหานิพจน์ปกติ

[\n\r]{2,}

แล้วแทนที่ด้วย

\n

เพื่อลบช่องว่างทุกประเภทในประเสริฐและ Dreamviewr


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