ฉันต้องการเขียนส่วนของโครงการ opensource อีกครั้ง ซึ่งรวมถึงวิธีการเปลี่ยนชื่อ ฉันจะทำอย่างมีประสิทธิภาพใน emacs ทั่วทั้งโครงการได้อย่างไร
ฉันจะไม่ใช้แฮ็กเช่นการค้นหาและแทนที่ในทุกบัฟเฟอร์
ropemacs
ในแพคเกจที่เรียกว่า
ฉันต้องการเขียนส่วนของโครงการ opensource อีกครั้ง ซึ่งรวมถึงวิธีการเปลี่ยนชื่อ ฉันจะทำอย่างมีประสิทธิภาพใน emacs ทั่วทั้งโครงการได้อย่างไร
ฉันจะไม่ใช้แฮ็กเช่นการค้นหาและแทนที่ในทุกบัฟเฟอร์
ropemacs
ในแพคเกจที่เรียกว่า
คำตอบ:
ตอนนี้ฉันใช้helm-ag
เพื่อค้นหาอินสแตนซ์ทั้งหมดของชื่อฟังก์ชั่น (ค้นหาในไฟล์ทั้งหมดรวมถึง subdirs ไม่ใช่เฉพาะในบัฟเฟอร์เปิด) จากนั้นฉันใช้C-c C-e
เพื่อป้อนบัฟเฟอร์ที่แสดงรายการที่ตรงกันทั้งหมดและฉันเปลี่ยนชื่อฟังก์ชัน เมื่อฉันทำฉันกดC-c C-c (helm-ag--edit-commit)
เพื่อจัดเก็บการเปลี่ยนแปลงของไฟล์ที่เปิดทั้งหมด
นี่อาจฟังดูสับสน แต่โปรดดูที่https://github.com/ShingoFukuyama/helm-swoop
เมื่อคุณคร่ำครวญคุณจะร้องไห้ด้วยความปิติยินดีที่มีการใช้งานที่ยอดเยี่ยมเช่นนี้
เนื่องจากคุณไม่ได้ระบุภาษาจึงยากที่จะให้คำตอบที่ดีกว่า "ค้นหาและแทนที่"
หากคุณเพียงแค่ต้องการ (แบบโต้ตอบ) แทนที่สัญลักษณ์ทั้งหมดด้วยสัญลักษณ์อื่น wgrep คือทางออกที่ดีที่สุดของคุณ ให้คุณแก้ไขบัฟเฟอร์ผลลัพธ์ grep แบบโต้ตอบ
M-x package-install RET wgrep
DoM-x rgrep
วิ่ง มันจะถามคำถามง่ายๆสองสามข้อจากนั้นทำการค้นหาคำซ้ำภายในไดเรกทอรีที่คุณระบุM-x wgrep-change-to-wgrep-mode
และทำ บัฟเฟอร์นี้สามารถแก้ไขได้ในขณะนี้ การเปลี่ยนแปลงใด ๆ ที่คุณทำที่นี่จะปรากฏในไฟล์ด้วยตนเองreplace-regexp
หรือ a query-replace-regexp
ในบัฟเฟอร์นี้เพื่อทำการ refactoringM-x wgrep-save-all-buffers
M-x wgrep-finish-edit
สำหรับวิธีการทั่วไปบางอย่างให้ดูที่หัวข้อ " แทนที่ข้ามไฟล์ " ในหน้าค้นหา Emacs Wiki & แทนที่: http://www.emacswiki.org/emacs/CategorySearchAndReplace
ดูคำตอบสำหรับ: การใช้ Emacs เพื่อค้นหาและแทนที่ในไฟล์ข้อความที่ไม่ได้เปิดซ้ำ
คุณสามารถใช้counsel-rg
ตามด้วยC-c C-oเพื่อรับรายชื่อผู้สมัครทั้งหมดในบัฟเฟอร์ กดเพื่อแก้ไขพวกเขาด้วยw wgrep
ฉันแนะนำiedit
สำหรับการเปลี่ยนชื่อสัญลักษณ์ กดC-c C-cเพื่อยืนยัน
อ้างอิง: