आकस्मिक रूप से दिए गए स्ट्रिंग को बदलें


12

हम कहते हैं कि मेरे पास नीचे जैसा एक पाठ है:

एसी (nn)
एसी (nn)
एसी (nn)
एसी (nn)
एसी (nn)
एसी (nn)
एसी (nn)
एसी (nn)
एसी (nn)
एसी (nn)
एसी (nn)

अब मैं इसके nnसाथ संख्याओं को बदलना चाहता हूं

एसी (0)
एसी (1)
एसी (2)
एसी (3)
एसी (4)
एसी (5)
एसी (6)
एसी (7)
एसी (8)
एसी (9)
एसी (10)

मैं M-x replace-regexp nn RET \# RETइसे पूरा करता था।

प्रशन:

  1. मैं प्रतिस्थापन नंबर शुरू करने के लिए से शुरू करना चाहते हैं 1के बजाय से 0। या इसके बजाय एक निर्दिष्ट संख्या से शुरू करें 25। मुझे उपरोक्त आदेश को कैसे संशोधित करना चाहिए?
  2. nnअंकों को कैसे बदलें 001, जैसे 002.... 998, 999आदि - मेरा मतलब अग्रणी शून्य से है

यह वह नहीं है जो आप के लिए पूछ रहे हैं, लेकिन ऐसा करने का एक अन्य तरीका एक रजिस्टर के साथ एक मैक्रो का उपयोग करना है।
कमला

जवाबों:


12

सामान्य तकनीक

आपके प्रतिस्थापन स्ट्रिंग में मनमाना लिस्प कोड हो सकता है। रिप्लेसमेंट के लिए डॉक्यूमेंट से -रेगेक्सप :

इंटरेक्टिव कॉल्स में, रिप्लेसमेंट टेक्स्ट में '\' हो सकता है, इसके बाद रिप्लेसमेंट टेक्स्ट के हिस्से के रूप में एक लिस्प एक्सप्रेशन का उपयोग किया जा सकता है। इस अभिव्यक्ति के अंदर, '\' एक स्ट्रिंग है जो पूरे मैच को दर्शाता है, '\ N' एक आंशिक मैच, '# &' और '#N' संबंधित संख्यात्मक मान 'स्ट्रिंग-टू-नंबर' और '#' से है। 'स्वयं' रिप्लेस-काउंट 'के लिए, रिप्लेसमेंट की संख्या अब तक हुई, जिसकी शुरुआत शून्य से हुई थी।

हम इस तकनीक का उपयोग कई तरीकों से कर सकते हैं।

से शुरू 1

हम चाहते हैं nnकि replace-countआपके द्वारा उपयोग किए जाने वाले एक से अधिक के साथ प्रतिस्थापित किया जाए \#

#'replace-regexpतर्क के साथ कॉल करें \,(1+ \#):

C-M-% nn \,(1+ \#)साथ nn का स्थान ले लेगा 1पहले, फिर 2, 3आदि

पे शुरुवात 25

आप इसे न केवल जोड़कर, बल्कि अपने उदाहरण में संशोधित कर सकते हैं: 25:

C-M-% nn \,(+ 25 \#)

अग्रणी शून्य

या हम formatअग्रणी शून्य जोड़ने के लिए उपयोग कर सकते हैं । यह स्थान ले लेगा nnसाथ 000, 001, 002, आदि आप अन्य तुतलाना कोड ऊपर कम से शुरू करने के लिए गठजोड़ कर सकते हैं 001, 025या आप चाहते हैं जो कुछ भी।

C-M-% nn \,(format "$03d" \#)


5

आप भी इस्तेमाल कर सकते हैं cua-mode

आयत रेजीयन (सभी एनएन) का चयन करें और फिर M-x cua-rectangle-mark-mode

अगला, M-nऔर डिफ़ॉल्ट मानों को स्वीकार करें।


मेरी इच्छा है कि मैं इसे एक उत्तर के रूप में भी स्वीकार कर
प्रसन्न
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.