ค้นหาสตริงโดยไม่สนใจบรรทัดใหม่


11

fill-columnฉันกำลังที่ใช้ในการเขียนไฟล์ที่ย่อหน้าจะแบ่งออกเป็นหลายสายเช่นกับ เมื่อฉันค้นหาสตริง ( C-s) เช่นthis is a long textผลลัพธ์การค้นหาจะไม่ส่งคืนตำแหน่งที่สตริงปรากฏขึ้นพร้อมกับตัวแบ่งบรรทัดระหว่างสองคำ (เช่นthis\nis a long text)

มีคำสั่งที่จะให้ผลลัพธ์เหล่านี้ด้วยหรือไม่

คำตอบ:


11

ลองดูที่ตัวแปรisearch-lax-whitespace, และisearch-regexp-lax-whitespacesearch-whitespace-regexp

หากตัวแปรสองตัวแรกถูกตั้งค่าเป็นสิ่งที่ไม่ใช่ศูนย์ (เช่นt) อักขระช่องว่างใด ๆ ในสตริงการค้นหาของคุณจะจับคู่ลำดับใด ๆ ที่จับคู่โดยนิพจน์ทั่วไปที่กำหนดโดยsearch-whitespace-regexpตัวแปร

ในการจับคู่คำข้ามตัวแบ่งบรรทัดให้ทำดังนี้

(setq isearch-lax-whitespace t)
(setq isearch-regexp-lax-whitespace t)
(setq search-whitespace-regexp "[ \t\r\n]+")

อักขระช่องว่างในแบบสอบถามของคุณจะตรงกับช่องว่างแท็บหรือ linebreak ใด ๆ จำนวนครั้ง


ขอบคุณ แต่นั่นไม่ได้ผลสำหรับฉัน My Emacs เวอร์ชั่นคือ 23.4.1 เห็นได้ชัดว่ามันไม่มีตัวแปร "isearch-lax-whitespace"
Tony

1
ใช่คุณสมบัติเหล่านี้ถูกนำมาใช้ใน Emacs 24.3 มีโอกาสที่จะอัปเกรดเป็นเวอร์ชันที่ใหม่กว่าหรือไม่ เวอร์ชัน 23.4.1 มีอายุมากกว่าสามปีแล้ว
rekado

2
ลองisearch-forward-wordซึ่งจะถูกผูกไว้M-s wใน Emacs ล่าสุด
politza

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