Visual Studio Code - ลบบรรทัดว่างทั้งหมด - regex


139

ฉันใช้เวลาพยายามหาวิธีลบบรรทัดว่างทั้งหมดใน Visual Studio Code และไม่สามารถใช้งานได้ ใครรู้วิธีทำกรุณา?

หากฉันค้นหา^$ในขณะที่พิมพ์ในช่องค้นหา VSC จะพบบรรทัดว่าง (บรรทัดว่างเปล่าหมายถึงไม่มีช่องว่างสีขาว) แต่จะไม่ลบออกเมื่อฉันกดแทนที่ทั้งหมด ไม่ทำอะไรเลย: ^ $

สำหรับบรรทัดว่างที่มีช่องว่างการ^\s+$ค้นหาใช้งานได้ แต่ไม่ได้ลบออก มันทำอะไรแทนที่พวกเขาด้วยบรรทัดว่างโดยไม่มีช่องว่าง :)) ^ \ s + $

ต้องเป็นฉันทำอะไรผิดแน่ ๆ ฉันคิดไม่ออกว่ามันคืออะไร มีใครรู้บ้าง? ขอบคุณ.


1
ฉันได้เพิ่มความคิดเห็นเกี่ยวกับปัญหาที่คุณเปิดเกี่ยวกับเรื่องนี้ แต่สำหรับคนอื่น$ไม่ตรงกับอักขระบรรทัดใหม่จริงตรงกับโทเค็นความกว้างเป็นศูนย์ที่มีอยู่ก่อนอักขระขึ้นบรรทัดใหม่ ในการเปลี่ยนบรรทัดใหม่คุณต้องใช้\nแต่ VS Code ไม่รองรับการจับคู่ regex แบบหลายบรรทัด ( # 313 )
Marie

ขอบคุณมารี ดูเหมือนว่าเราจะต้องรอสักพัก
Joz

4
ค้นหาสิ่งนี้ในโหมด regex ^ $ \ n และแทนที่ด้วย blank ก็ใช้ได้เช่นกัน Happy Coding !!!
sajal rajabhoj

ขั้นตอนง่ายๆ: stackoverflow.com/a/50042582/6597375
Deepu Reghunath

คำตอบ:


204

สำหรับผู้ที่อาจสนใจ - สิ่งที่ใช้ได้ผลสำหรับฉันในเวอร์ชัน 1.3.1 (และยังใช้งานได้ใน 1.33.1) เพื่อลบบรรทัดว่างที่ฉันใช้ctrl+ h(ค้นหาและแทนที่) alt+ r(ใช้นิพจน์ทั่วไป)

ในช่องค้นหาแล้ว:

\n\n

ในกล่องแทนที่:

\n

สิ่งนี้ควรทำให้ป้ายท้ายบรรทัดสองอันติดกันเป็นหนึ่งเดียว

แก้ไข:

หากคุณต้องการแทนที่บรรทัดว่างเพิ่มเติม (มากกว่าสองบรรทัด) ในครั้งเดียวคุณสามารถใช้นิพจน์ทั่วไปต่อไปนี้ในช่องค้นหา:

\n+

หากคุณต้องการแทนที่บรรทัดว่างด้วยช่องว่างคุณต้องใช้นิพจน์ทั่วไปต่อไปนี้ในช่องค้นหา:

\n+\s*\n

รหัส VS ใช้นิพจน์ทั่วไปของจาวาสคริปต์


11
ตามบรรทัดเหล่านี้ฉันใช้^[\r\n]{3,}
RJ Cuthbertson

มันใช้งานได้แล้ว ขอบคุณ :) VSC หลายเวอร์ชันระหว่างกัน แต่ก็ไม่เป็นไร แทนที่ \ n \ n ด้วย \ n ได้ผลดี
Joz

ดูวิธีแก้ปัญหา @Dzumret ด้านล่าง ในโซลูชันของฉันมันจะลบเฉพาะบรรทัดที่ไม่มีอะไรเลย วิธีแก้ปัญหาของเขาลบบรรทัดที่มีอักขระเว้นวรรค (ช่องว่างแท็บ)
suchoss

คำตอบนี้ไม่ได้ใช้ทุกกรณีถ้าคุณมีช่องว่างในบรรทัดว่าง
dhaker

1
เยี่ยมมาก! ในการลบบรรทัดว่างที่ติดต่อกันมากกว่าหนึ่งบรรทัดฉันแทนที่ \ n + ด้วย \ n หากต้องการใช้ช่องว่างให้แทนที่ด้วย (^ \ s * \ n) + โดยไม่มีอะไรเลย
Ilario

121

สิ่งที่ใช้ได้ผลคือรูปแบบ regex นี้:

^\s*$\n

จากนั้นCTRL+Enterแทนที่บรรทัดทั้งหมด

คำอธิบายของรูปแบบข้างต้น:

-----------------------------------------------
|  ^ | beginning of string anchor             |
-----------------------------------------------
| \s | any whitespace character               |
-----------------------------------------------
| '*'| zero or more repetitions               |
-----------------------------------------------
|  $ | end of string anchor                   |
-----------------------------------------------
| \n | new line                               |
-----------------------------------------------

ไม่แน่ใจ แต่สิ่งนี้ใช้ได้ผลสำหรับฉันเท่านั้นเปรียบเทียบกับคำตอบอื่น ๆ ทั้งหมด อธิบายได้ดีเช่นกัน ขอบคุณ.
สาย

การวางพุก\nด้านนอกเป็นสิ่งที่เหมาะกับฉัน VSCode อนุญาตให้แทนที่โดยไม่มีอะไรเลย (ช่อง "แทนที่ด้วย" ว่างเปล่า)
Eric

46

Visual Studio รหัส 1.13.0 Linux Lite:

  • ตีCTRL+H
  • เลือก "ใช้นิพจน์ทั่วไป"
  • ค้นหากล่อง: ^ (\ s) * $ \ n (ป้อนตอนจบ \ n จำนวนมากตามที่คุณต้องการ)
  • แทนที่กล่อง: ว่างเปล่า
  • คลิกแทนที่ทั้งหมด

สายว่างหายไป!


18

นี่คือ regex ของฉันมันจับบรรทัดใหม่พิเศษและบรรทัดว่างทั้งหมดที่มีเพียงช่องว่างแท็บ ฯลฯ

\n\s*\n

และฉันแทนที่การแข่งขันทั้งหมดด้วย \n

คำอธิบาย

\n       : New Line
\s*      : Zero or more consecutive white space characters or new lines
\n       : Another New Line

PS: อย่าลืมเลือกตัวเลือก regex ในหน้าต่างค้นหา !!



6

ไม่คุณทำถูกต้องแล้ว

ฉันมีพฤติกรรมเดียวกันที่นี่

ฉันลอง regex อื่นด้วย: (\r?\n){2,} แต่ดูเหมือนว่าจะใช้ได้กับบรรทัดเดียวเท่านั้น

อาจมีการตั้งค่าที่จะเปลี่ยนพฤติกรรม regexp เริ่มต้นหรือบางที VS ถูกสร้างขึ้นในลักษณะดังกล่าว (ตามบรรทัด)

แน่นอนว่าไม่ใช่เรื่องใหญ่ที่จะตัดวางและย้อนกลับจากโปรแกรมแก้ไขข้อความอื่น


3
สิ่งนี้ช่วยฉันได้หลังจากที่ฉันแทนที่ทั้งหมด^\s*$ด้วยความว่างเปล่าแล้วฉันก็ลอง(\r?\n){2,}
Mihai Popescu

5

ฉันไม่รู้เกี่ยวกับ yout แต่จำคำสั่งมากมายสำหรับฉันทำให้เสียเวลา!

ใช้ส่วนขยาย "Blank Line Organizer" นี่คือคำอธิบาย:

ส่วนขยายนี้จะช่วยคุณจัดระเบียบบรรทัดว่างในโค้ดโดยการลบบรรทัดว่างหลาย ๆ บรรทัด ส่วนขยายจะลบบรรทัดว่างจากบรรทัดที่เลือกเท่านั้นหากมีมิฉะนั้นจากทั้งไฟล์

วิธีใช้: ตรวจสอบคำอธิบายของส่วนขยาย แต่ตะเข็บดีจริงๆ!

blankLine.triggerOnSave boolean true    If set to true, the command will be triggered on save.

กล่าวอีกนัยหนึ่งคือหลังจากบันทึกไฟล์แล้วระบบจะล้างข้อมูลโดยอัตโนมัติ!


สวัสดี @ จุน! ฉันใช้ Sublime Text3 ซึ่งสามารถแก้ปัญหาได้มากมายแถมยังเบากว่าและมีคุณสมบัติที่ดีอีกด้วย
Marcelo Agimóvel

คุณใช้ปลั๊กอินอะไรกับ Sublime Text3? ฉันเคยใช้ Webstorm และสร้างมาแล้ว
มิ.ย. 711

Html / CSS / JS
Prettify

หมายเหตุเกี่ยวกับ 'blankLine' →อย่าลืมเพิ่มภาษาของคุณในรหัสภาษาที่จะดำเนินการ ตัวอย่างเช่น add "csharp",to process ไฟล์. csharp
Ty Irvine

3

ฉันพบว่าสิ่งต่อไปนี้ทำงานได้ดีที่สุดสำหรับฉันใน Visual Studio:

แทนที่: ^\n$ ด้วย: <no value here>

จะพบบรรทัดว่างทั้งหมดและล้างออก


3

ในกรณีของฉัน โซลูชัน kobi7 (\r?\n){2,}ใช้ได้กับฉันเท่านั้นฉันต้องเรียกใช้อีกครั้งด้วยการปรับเปลี่ยนเล็กน้อยเพื่อให้ใช้งานได้กับบรรทัดเดียว (เปลี่ยนแค่ 2 ถึง 1)

^(\r?\n){1,}

0

Code Maid Extension คือสิ่งที่คุณต้องการ คุณสามารถใช้ทางลัด Ctrl M + Space bar เพื่อล้างไฟล์ของคุณมันจะลบบรรทัดว่างและจัดรูปแบบโค้ดของคุณ คุณยังสามารถกำหนดค่าเกี่ยวกับรูปแบบและกฎการล้างข้อมูล หวังว่านี่จะเป็นประโยชน์


ไม่พบ (บน Manjaro Linux)
Marcelo Agimóvel

2
นั่นเป็นเพราะเป็นส่วนขยาย Visual Studio ไม่ใช่ส่วนขยาย Visual Studio Code
Rene Juuse


0

มีเวอร์ชันของฉันสำหรับทำความสะอาดเส้นว่างด้วยช่องว่าง:

find:    (?:\s*$(\r?\n)){2,}
replace: $1

-1

แทนที่: ^ \ n $ ด้วย: "blank space"


และลบทุกช่องว่างในเอกสารของคุณ?
Angry 84

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