मैं एक ओपनसोर्स परियोजना के कुछ हिस्सों को फिर से लिखना चाहता हूं। इसमें नाम बदलने के तरीके शामिल हैं। मैं पूरे प्रोजेक्ट में कैसे कुशलतापूर्वक emacs कर सकता हूं?
मैं बल्कि हर बफ़र में खोज और प्रतिस्थापन जैसे हैक्स का उपयोग नहीं करूंगा।
ropemacs
।
मैं एक ओपनसोर्स परियोजना के कुछ हिस्सों को फिर से लिखना चाहता हूं। इसमें नाम बदलने के तरीके शामिल हैं। मैं पूरे प्रोजेक्ट में कैसे कुशलतापूर्वक emacs कर सकता हूं?
मैं बल्कि हर बफ़र में खोज और प्रतिस्थापन जैसे हैक्स का उपयोग नहीं करूंगा।
ropemacs
।
जवाबों:
अब मैं helm-ag
फ़ंक्शन नाम के सभी उदाहरणों को खोजने के लिए उपयोग करता हूं (सभी फ़ाइलों में खोज, incl। उपखंड, न केवल खुले बफ़र्स में), और फिर मैं 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
।M-x rgrep
। यह आपसे कुछ आसान सवाल पूछेगा और फिर आपके द्वारा निर्देशित निर्देशिका के अंदर सर्च-टर्म के लिए एक पुनरावर्ती खोज करेगा।M-x wgrep-change-to-wgrep-mode
। यह बफ़र अब संपादन योग्य है। आपके द्वारा यहां किए गए किसी भी परिवर्तन को स्वयं फाइलों में परिलक्षित किया जाएगा।replace-regexp
या एक चलाएं query-replace-regexp
, रिफैक्टरिंग करने के लिए।M-x wgrep-save-all-buffers
और M-x wgrep-finish-edit
।कुछ सामान्य दृष्टिकोणों के लिए, Emacs विकी खोज और प्रतिस्थापित पृष्ठ पर " बदलें एक्रॉस फ़ाइल्स " शीर्षक के नीचे देखें : http://www.emacswiki.org/emacs/CategorySearchAndReplace
इसके उत्तर भी देखें: पाठ फ़ाइलों को पहले से न खोलने के लिए Emacs का पुन : उपयोग करना और उन्हें बदलना ।