टी एल; डॉ: erefactor-rename-symbol-in-buffer
आप एक शाब्दिक नाम बदलने वाले फ़ंक्शन की तलाश कर रहे हैं - एक जो अपने दायरे द्वारा चर का नाम बदल देता है, न कि केवल एक गूंगा खोज और प्रतिस्थापित करता है। इस तरह के पैकेज बहुत सी भाषाओं के लिए मौजूद हैं लेकिन लेखन के रूप में (अप्रैल 2019), वास्तव में Emacs Lisp के लिए कई विकल्प नहीं हैं। erefactor
पैकेज केवल एक ही मैं के बारे में पता है।
erefactor-rename-symbol-in-buffer
आप चाहते हैं समारोह है। यह एक इंटेलिजेंट फ़ाइंड-एंड-रिप्लेस्ड कमांड है जो मौजूदा स्कोप (डोकस्ट्रिंग्स सहित) में प्रतीकों को बदल देगा। इस आदेश की सीमा यह है कि यह वर्तमान बफर के बाहर खोज नहीं करेगा। यह स्मार्ट है, लेकिन सही नहीं है। यह आपको अंतिम परिणाम सेनिटरी सुनिश्चित करने के लिए प्रत्येक संभावना की पुष्टि करने के लिए कहेगा।
अन्य नाम बदलने का कार्य है erefactor-rename-symbol-in-package
। यह उसी तरह से काम नहीं करता है - यह केवल वैश्विक प्रतीकों पर काम करता है। यह आपके पैकेज पर निर्भर करता है एक समूहीकरण प्रणाली और उपसर्ग के साथ सही ढंग से सेट किया गया है, और इसे पैकेज के उपसर्ग से मिलान करने के लिए चर की आवश्यकता है। यह बहुत मजबूत नहीं है - यह विफल हो जाएगा यदि आपने चीजों को उस तरह से सेट नहीं किया है जिस तरह से यह फ़ंक्शन अपेक्षा करता है। मुझे लगता है कि यदि आप एक वैश्विक प्रतीक का नाम बदल रहे हैं, तो आप एक भोली खोज का उपयोग कर सकते हैं और बदल सकते हैं क्योंकि एलीश में वैश्विक प्रतीकों का कोई नाम नहीं है। शाब्दिक समझ के लाभ न्यूनतम हैं। यह कमांड ट्रेडऑफ के लिए बहुत नाजुक है। मैं सिर्फ उपयोग करने का सुझाव दूंगा projectile-replace
।
Erefactor के पास कई अन्य संभावित कमांड हैं जो आपको उपयोगी लग सकते हैं। रीडमी में एक (अपूर्ण) सूची उपलब्ध है ।
यह GitHub पेज पर वर्णित नहीं है, लेकिन erefactor
MELPA ( M-x package-install RET erefactor
) पर उपलब्ध है । MELPA पेज यहां पाया जा सकता है ।