คำถามติดแท็ก replace

5
มีวิธีใช้การแทนที่แบบสอบถามจากโหมดเอาต์พุต grep / ack / ag หรือไม่?
ฉันรู้find-grep-diredแล้วทำเครื่องหมายไฟล์ที่เกี่ยวข้องแล้วกดQเพื่อเรียกใช้dired-do-query-replace-regexpไฟล์ที่ทำเครื่องหมาย น่าเสียดายที่ต้องรีสตาร์ท grep และไม่ต้องใช้ git-grep, ack หรือ ag และเปลี่ยนเป็นใช้find-grepซึ่งมีไวยากรณ์ที่แตกต่างกันสำหรับการค้นหา ฉันรู้multi-occurและoccur-edit-modeด้วย แต่ต้องเริ่มต้นใหม่โดยใช้การค้นหาเกิดขึ้น ในที่สุดag-diredดูเหมือนจะตรงกับชื่อไฟล์ไม่ใช่เนื้อหาของไฟล์ วิธีการปัจจุบันของฉันคือการสร้างเอาต์พุต grep จากนั้นเรียกใช้แมโครที่เริ่มต้นในบัฟเฟอร์ grep และเข้าชมแต่ละรายการที่ตรงกันและเปลี่ยนแปลง ฉันต้องการใช้query-replaceโดยตรงกับชุดการแข่งขันที่พบ สิ่งที่ฉันต้องการจะทำคือการอย่างใดอย่างหนึ่งได้อย่างรวดเร็วสร้างบัฟเฟอร์ dired จากการส่งออก grep ที่มีอยู่เพื่อที่ฉันสามารถทำเครื่องหมายไฟล์ที่เหมาะสมและโทรสอบถาม regexp กับพวกเขาหรือเปลี่ยนเอาท์พุท grep ลงในรายการของบัฟเฟอร์สำหรับmulti-occurเพื่อที่ฉันสามารถใช้occur-edit-modeเพื่อ แก้ไขให้ถูกต้องและรันquery-replaceบนบัฟเฟอร์นั้น ฟังก์ชันนี้มีอยู่หรือมีเวิร์กโฟลว์อื่นที่สามารถแก้ไขปัญหานี้ได้หรือไม่
31 dired  editing  replace  occur 


3
มีเทียบเท่ากับคำสั่งทดแทนสไตล์ sed จากเสียงเรียกเข้า?
สิ่งหนึ่งที่ฉันพลาดจากเสียงเรียกเข้าคือสามารถพิมพ์คำสั่งการแทนที่ที่จะทำงานผ่านหลายบรรทัดตัวอย่างเช่น: :/begin/,/end/s/foo/bar/g คำสั่งดังกล่าวใช้แทน "foo" สำหรับ "bar" ที่ขึ้นต้นด้วยบรรทัดแรกที่มี "start" และลงท้ายด้วยบรรทัดถัดไปหลังจากนั้นจะมี "end" มีวิธีการทำสิ่งที่คล้ายกันใน emacs หรือไม่?

2
คุณลักษณะการค้นหา / แทนที่เช่นสำหรับการแลกเปลี่ยนข้อความ
บ่อยครั้งที่ฉันพบว่าตัวเองพยายามที่จะเข้ามาแทนที่เช่นfooด้วยbarและbarด้วยfooในกันชน วิธีที่ฉันทำตามปกติคือ: 3 แบบสอบถามแทนที่: aaa -> @@@, bbb -> aaa,@@@ -> bbb ยอมแพ้ในระบบอัตโนมัติและทำการทดแทนด้วยมือ ฉันคิดว่ามันเป็นไปได้ที่จะได้รับสิ่งที่ทำงานโดยใช้,ไวยากรณ์ในquery-replace-regexpการทดสอบว่าสตริงที่ตรงกันaaaหรือbbbไม่ แต่ไวยากรณ์ที่เกิดขึ้นจะยุ่งยากเกินไปดังนั้นฉันไม่เคยลองเลย สิ่งที่ได้รับคือความธรรมดาของงานฉันคิดว่าต้องมีขั้นตอนที่ดีกว่าขั้นตอนเดียวในการทำไม่ว่าจะเป็นในตัวหรือในแพ็คเกจที่มีอยู่ มีอะไรบ้าง

2
แทนที่สตริงที่กำหนดเพิ่มขึ้น
ให้เราบอกว่าฉันมีข้อความเช่นด้านล่าง: AC (NN) AC (NN) AC (NN) AC (NN) AC (NN) AC (NN) AC (NN) AC (NN) AC (NN) AC (NN) AC (NN) ตอนนี้ฉันต้องการแทนที่nnด้วยตัวเลขอย่างนั้น AC (0) AC (1) AC (2) เอซี (3) AC (4) AC (5) AC (6) AC (7) AC (8) AC (9) เอซี (10) ฉันเคยM-x replace-regexp nn RET …

4
วิธีแปลงชุดบรรทัดเป็นรายการ HTML ที่ใช้งานได้
ตอนนี้นี่เป็นงานที่ฉันพบเจอได้ง่ายกว่าในบางอย่างเช่น gedit เพราะฉันสามารถแทนที่ "\ n" (ตัวแบ่งบรรทัด) ด้วย "</li> \ n <li>" จากนั้นฉันก็มีรายการ หนึ่งในสิ่งเล็กน้อยที่ฉันไม่สามารถทำได้ใน Emacs อย่างรวดเร็ว แต่สิ่งที่ฉันใช้บ่อยมาก

5
จะเปลี่ยนวงเล็บที่ตรงกันได้อย่างไร
ฉันเขียน (และเขียนใหม่) สูตรทางคณิตศาสตร์จำนวนมากใน LaTeX กับ Emacs ฉันมักจะเจอสถานการณ์ที่ฉันต้องการเปลี่ยนวงเล็บคู่ที่ตรงกันเพื่อปรับปรุงความสามารถในการอ่าน Emacs ของฉันใจดีพอที่จะแสดงตัวคั่นที่ตรงกัน แต่ฉันจะเปลี่ยนเป็นโปรแกรมได้อย่างไร ตัวอย่างเช่นเปลี่ยนตัวคั่นภายนอกในครั้งเดียว: ( (\sqrt{a} + b)^{-1} + c^{-1} ) ถึง [ (\sqrt{a} + b)^{-1} + c^{-1} ]

2
แทนที่สองสายด้วยกัน
ฉันต้องการที่จะเปลี่ยนทุกสิ่งที่เกิดขึ้นของสตริง (พูด string1) กับสตริงอื่น (พูดว่า string2) และในทางกลับกัน เพื่อความแม่นยำฉันมีเอกสารยาวและสตริงเหล่านี้เกิดขึ้นหลายครั้ง สิ่งที่ฉันทำในปัจจุบันคือการแทนที่ string1 -> string3 จากนั้น string2 -> string1 และสุดท้าย string3 -> string2 ฉันสงสัยว่ามีฟังก์ชั่นเป็น emacs อยู่หรือไม่ ยินดีต้อนรับการแก้ปัญหาอื่น ๆ แก้ไข : นี่เป็นคำถามซ้ำที่เชื่อมโยงในความคิดเห็น แต่ปัญหาคือคำตอบที่ได้รับการยอมรับของคำถามนั้นไม่ได้ผลเสมอไป (ดูความคิดเห็นด้านล่าง) ฉันคิดว่าเป็นการดีกว่าที่จะรอจนกว่าผู้เขียนคำตอบที่ยอมรับจะแก้ไขคำตอบของเขา / เธอหรือวิธีแก้ไขปัญหาอื่น ๆ ออกมา ประการที่สองก่อนโพสต์คำถามของฉันฉัน googled คำถามและคำถามนั้นไม่ปรากฏขึ้น ฉันคิดว่าการมีคำถามที่ซ้ำกันสองครั้งนั้นมีประโยชน์เนื่องจากพวกเขาใช้ถ้อยคำที่แตกต่างกันและหากผู้ใช้พบคำถามที่ซ้ำกันเขา / เธอสามารถค้นหาคำถามที่ถูกต้องได้ แก้ไข 2:คำตอบที่ยอมรับของคุณลักษณะ Search / replace-like สำหรับการสลับข้อความดูเหมือนจะไม่เป็นไร
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.