ฉันจะลบบรรทัดเฉพาะใน Notepad ++ ได้อย่างไร


94

ฉันกำลังล้างไฟล์โค้ดบางไฟล์ (C #) และต้องการลบพื้นที่ออก และฉันต้องการลบบรรทัดทั้งหมดที่มีสตริง "#region" นั่นเป็นเพียงตัวอย่างและฉันสามารถนึกถึงการใช้งานอื่น ๆ อีกมากมาย แต่เป็นไปได้หรือไม่?


2
ฉันอยากจะโหวตให้คำถามนี้ไม่อยู่ในหัวข้อ ... ส่วนใหญ่เป็นคำถามเกี่ยวกับ notepad ++ และรูปแบบการทำงานที่เฉพาะเจาะจง แต่ไม่จำเป็นต้องเกี่ยวข้องกับการเขียนโปรแกรม: /
Andreas Niedermair

@AndreasNiedermair เห็นด้วย
Stefan Falk

คำตอบ:


39

คุณสามารถใช้เมนูค้นหา -> แทนที่ ... ( Ctrl+ H)

มีคุณลักษณะนิพจน์ทั่วไปสำหรับการแทนที่ คุณสามารถใช้นิพจน์ทั่วไปที่ตรงกับ #region เช่นเดียวกับส่วนอื่น ๆ ในบรรทัดและแทนที่ด้วยพื้นที่ว่าง


ขอบคุณฉันทำอย่างนั้นและได้ผล แต่ตอนนี้ฉันกำลังพยายามแทนที่ \ n \ n ด้วยเพียงอันเดียว \ n แต่ดูเหมือนจะไม่ได้ผลมีความคิดใดบ้าง?
Rismo

1
ใช้การค้นหาแบบขยายเพื่อแทนที่ลำดับการหลีกเลี่ยง (ปุ่มตัวเลือกเหนือ regex)
John T

ขอบคุณจอห์น ฉันทำอย่างนั้นและใช้ได้กับการแบ่งบรรทัดเดียว \ n แต่ไม่ใช่สำหรับสองคน ฉันกำลังค้นหา \ n \ n และแทนที่ด้วย \ n แต่ไม่ได้ผล มันเหมาะกับคุณหรือไม่?
Rismo

1
หากคุณพิมพ์เอกสารบน windows บรรทัดท้ายจะเป็น \ r \ n การสิ้นสุดบรรทัดสไตล์ UNIX คือ \ n
John T

5
ก็เพิ่งสังเกตว่า TextFx -> TextFx Edit -> Delete Surplus Blank Lines ก็ทำเช่นเดียวกัน :)
Rismo

279

Notepad ++ v6.5

  1. ค้นหาเมนู -> หา ... -> มาร์คแท็บ -> สิ่งที่ค้นหาข้อความค้นหาของคุณตรวจสอบBookmark สายแล้วมาร์คทั้งหมด สิ่งนี้จะคั่นทุกบรรทัดด้วยข้อความค้นหาคุณจะเห็นวงกลมสีน้ำเงินในระยะขอบ

  2. แล้วค้นหาเมนู -> Bookmark -> ลบเส้นบุ๊คมาร์ค การดำเนินการนี้จะลบบรรทัดที่คั่นไว้ทั้งหมด

คุณยังสามารถใช้นิพจน์ทั่วไปเพื่อค้นหา วิธีนี้จะไม่ทำให้เกิดบรรทัดว่างเหมือนของ John และจะลบบรรทัดออกไป

เวอร์ชันที่เก่ากว่า

  1. ค้นหาเมนู -> หา ... -> สิ่งที่ค้นหาข้อความค้นหาของคุณตรวจสอบBookmark สายและคลิกค้นหาทั้งหมด
  2. จากนั้นค้นหา -> บุ๊กมาร์ก -> ลบเส้นคั่นหน้า

8
ขอบคุณ! ว้าวฉันไม่รู้ว่า NP ++ ทำสิ่งนี้ .. ประหยัดเวลาได้ดี ค้นหาและคั่นบรรทัด + ลบเส้น น่ากลัว ขอบคุณ!!
Matthew M.

แฮ็คอะไรทำไมฉันไม่สามารถแทนที่ \ r \ n ด้วย "" :(
felickz

13
นี่คือหนึ่งในอัญมณีชิ้นเล็ก ๆ ที่ฉันพบว่าฉันอยากจะโหวตให้มากกว่า 1 ฉันไม่สามารถบอกคุณได้ว่าฉันเสียเวลาไปเท่าไหร่ในช่วงหลายปีที่ผ่านมาโดยไม่ทราบว่ามีให้! ปัญหาเดียวคือตอนนี้ฉันคิดว่าฉันต้องมีประสิทธิผลมากขึ้น ...
มิลเนอร์

1
หากคุณกำลังค้นหาสิ่งนี้ ขณะนี้ 'Mark' มีแท็บของตัวเองในเมนูป๊อปอัปการค้นหา
bunnybare

1
@bunnybare ขอบคุณ ฉันอัปเดตคำตอบสำหรับเวอร์ชันล่าสุดแล้ว
เรย์

4

นี่คือวิธีลบบรรทัดที่มี "YOURTEXT" อย่างสมบูรณ์:

  • เปิดกล่องโต้ตอบแทนที่
  • ป้อนสตริงการค้นหาต่อไปนี้: .*YOURTEXT.*[\r]?[\n](แทนที่ YOURTEXT ด้วยข้อความของคุณ)
  • เปิดใช้งาน "นิพจน์ทั่วไป"
  • ปิดการใช้งาน ". ​​ตรงกับขึ้นบรรทัดใหม่"

นิพจน์ทั่วไปที่ระบุจะจับคู่กับปลายบรรทัดของ Windows และ Unix

หากข้อความของคุณมีอักขระที่มีความหมายพิเศษสำหรับนิพจน์ทั่วไปเช่นแบ็กสแลชคุณจะต้องหลีกหนี


เหตุใดคุณจึงใช้คลาสอักขระสำหรับอักขระเดี่ยว
Toto

4

นี่เป็นคุณสมบัติทั่วไปของ Notepad ++ ที่ฉันใช้เพื่ออัปเดตโค้ดของฉัน

สิ่งที่คุณต้องทำคือ:

  • เลือกสตริงทั่วไปที่มีอยู่ในทุกบรรทัด
  • กดCtrl+F
  • ในแท็บทำเครื่องหมายวางสตริงที่เกิดซ้ำและทำเครื่องหมายที่ช่องทำเครื่องหมายบรรทัดบุ๊กมาร์ก
  • คลิกที่ Mark All
  • ตอนนี้ไปที่เมนูค้นหาบุ๊คมาร์คลบเส้นคั่นหน้า

คุณสามารถอ้างถึงลิงค์นี้เพื่อดูคำอธิบายภาพ

http://www.downloadorinstall.com/best-notepad-tips-and-tricks-for-faster-work-and-development/


ดูเหมือนว่าลิงก์จะเสีย (หรืออาจต้องใช้โค้ด JavaScript จำนวนมากจนน่ากลัว)
Peter Mortensen

2

คำตอบของ Jacob ที่มีต่อ John T ทำงานได้อย่างสมบูรณ์เพื่อลบทั้งบรรทัดและคุณสามารถค้นหาในไฟล์ได้ด้วย อย่าลืมเลือก "นิพจน์ทั่วไป" ที่ด้านล่าง

วิธีการแก้: ^.*#region.*$


2
เขาบอกว่าเขาต้องการลบบรรทัดไม่ใช่แทนที่ด้วยบางสิ่ง
felickz

1

ตรวจสอบว่า EOL ของคุณคืออะไร \ n หรือ \ r \ n จากนั้นแทนที่.*#region.*\r\nโดยไม่มีอะไรในโหมด regexpr


0

คุณสามารถลองแทนที่ #region ด้วย \ n โดยเปิดโหมดการค้นหาเพิ่มเติม


2
OP บอกว่าเขาต้องการ "ลบบรรทัดทั้งหมด" คุณจะแทนที่ด้วยบรรทัดใหม่
felickz

0

การใช้ regex และค้นหาและแทนที่คุณสามารถลบบรรทัดทั้งหมดที่มี #region ได้โดยไม่ต้องเว้นบรรทัดว่าง เนื่องจากเหตุผลบางประการวิธีการของ Ray ใช้ไม่ได้กับเครื่องของฉันฉันจึงค้นหา(.*#region.*\n)|(\n.*#region.*)และปล่อยให้กล่องแทนที่ว่างเปล่า

regex นั้นช่วยให้มั่นใจได้ว่า if #regionถูกพบในบรรทัดแรกการขึ้นบรรทัดใหม่สิ้นสุดจะถูกลบและหากพบในบรรทัดสุดท้ายบรรทัดใหม่ก่อนหน้าจะถูกลบ

อย่างไรก็ตามวิธีแก้ปัญหาของ Ray นั้นดีกว่าถ้ามันเหมาะกับคุณ

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