จับคู่สองช่องว่างกับการค้นหาที่เพิ่มขึ้น


20

เมื่อค้นหาโดยใช้:

C-s SPC SPC

ยังจับคู่ช่องว่างเดียว ฉันต้องการจับคู่สองช่องว่าง

คำตอบ:


24

ใช้M-s SPCระหว่าง Isearch เพื่อสลับช่องว่างที่ตรงกันอย่างแท้จริง เมื่อจับคู่อย่างแท้จริงตัวอักษรแต่ละตัวที่SPCคุณพิมพ์จะถูกจับคู่แยกกัน (สิ่งนี้เคยเป็นพฤติกรรมของ Emacs ที่เป็นค่าเริ่มต้นคือ BTW)

การกำหนดค่านี้เป็นตัวเลือกเริ่มต้นพฤติกรรมการปรับแต่งการsearch-whitespace-regexp nil( M-x customize-option search-whitespace-regexp.)

ดู GNU Emacs Special Isearchคู่มือโหนด


ขอบคุณสำหรับสิ่งนี้. อาจดีที่จะใส่. emacs ลงไป(set-variable 'search-whitespace-regexp nil)ในนั้น ขอบคุณ
สีเทา

1
@Gray: set-variableไม่ได้บันทึกค่าใหม่อย่างต่อเนื่องเพื่อที่จะไม่เปลี่ยนพฤติกรรมเริ่มต้น ฉันคิดว่าM-x customize-optionเป็นสิ่งที่เรียกว่าที่นี่
Drew

โอ้ฉันกำลังพูดถึงมันในไฟล์ dot emacs ไม่ทราบเกี่ยวกับตัวเลือกการปรับแต่ง ขอบคุณสำหรับการแก้ไข
สีเทา

3

การใช้การค้นหาที่เพิ่มขึ้น regexp แก้ปัญหาได้หากคุณหลีกเลี่ยงอักขระอวกาศ:

C-M-s \SPC\SPC

นอกจากนี้คุณยังสามารถใช้การค้นหาและแทนที่โดยไม่มีแบ็กสแลชหากเป็นสิ่งที่คุณต้องการ:

M-% SPC SPC

ฉันพบปัญหาเดียวกันในวันนี้เมื่อสร้างมาโครคีย์บอร์ด คำตอบนี้แก้ปัญหาให้ฉันได้แม้ว่าฉันจะต้องใช้คีย์ผสมESC C-sแทน ดูเพิ่มเติมที่github.com/leoliu/ggtags/issues/64
Jonas Dahlbæk

3

การใช้การค้นหา regexp ช่วย แต่คุณสามารถตรวจสอบช่องว่างที่แท้จริงสำหรับการค้นหาที่ใช้C-q SPCเพื่ออ้างอิงช่องว่างในการค้นหา

หากต้องการ riff off จากคำตอบของ @ Rovanion ให้ใช้isearch-forward-regexp:

C-M-s C-q SPC C-q SPC

ที่จะค้นหาช่องว่างสองช่องติดต่อกัน น่าสนใจisearch-forward-regexpต้องใช้การจับคู่แบบแยก ค้นหาaaaสำหรับaaจะตรงกับครั้งและอีกครั้งที่ไม่ได้ตัวละครที่สอง


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