जवाबों:
आप के साथ एक उपसर्ग जोड़ सकते हैं M-x string-rectangle, जो करने के लिए बाध्य है C-x r t। यह आयतों की एक श्रृंखला का एक हिस्सा है जो आयताकार चयन पर संचालित होता है ; यह आयत में प्रत्येक पंक्ति में पाठ सम्मिलित करता है।
पहली पंक्ति की शुरुआत में चिह्न सेट करके शुरू करें, और अपने कर्सर को पिछली पंक्ति के पहले चरित्र पर ले जाएं जिसे आप उपसर्ग करना चाहते हैं:
*Hello
There
▮I am some code
फिर उपयोग करें C-x r t, अपना उपसर्ग ( I said) दर्ज करें और दबाएं RET। यह आयत में प्रत्येक पंक्ति में पाठ जोड़ता है:
I said Hello
I said There
I said I am some code
यदि आप अपने कर्सर को अपने चिह्न के समान स्तंभ पर पंक्तिबद्ध नहीं करते हैं, तो यह आयत के उस हिस्से को अधिलेखित कर देगा:
*Hello
There
I am▮ some code
उसी आदेश के परिणाम में:
I said o
I said e
I said some code
M-x string-insert-rectangle। यह बहुत समान है, लेकिन चयन की प्रत्येक पंक्ति की शुरुआत में string-insert-rectangle सम्मिलित करता है , जबकि string-rectangle प्रतिस्थापित करता है , इसलिए बाद वाले के साथ आपको अपने चयन के बारे में अधिक सटीक होना होगा यदि आप कुछ भी लिखना नहीं चाहते हैं।
आप प्रत्येक लाइन पर एक कर्सर लगाने के लिए कई-कर्सर-मोड का उपयोग कर सकते हैं । फिर, आपके द्वारा टाइप किया गया कोई भी पाठ प्रत्येक पंक्ति में डाला जाएगा।
आप कोड के टुकड़े की शुरुआत में बिंदु के साथ शुरू करेंगे:
▮Hello
There
I am some code
फिर C->दो बार मारा । (यह सुझाया गया कुंजीय बंधन है; आपको इसे स्वयं स्थापित करना होगा।) यह निम्नलिखित दो पंक्तियों पर दो अतिरिक्त श्राप बनाता है:
▮Hello
▮There
▮I am some code
फिर टाइप करें I said। प्रत्येक पंक्ति में पाठ जोड़ा जाएगा:
I said ▮Hello
I said ▮There
I said ▮I am some code
अंत में RETकई कर्सर मोड से बाहर निकलें और अंतिम कर्सर पर बिंदु छोड़ें:
I said Hello
I said There
I said ▮I am some code
यहां एक वीडियो है जो दिखाता है कि यह कैसे काम करता है।
एक अन्य विकल्प मैक्रोज़ का उपयोग करना है, जो आयताकार चयन या एकाधिक कर्सर से अधिक कार्यों को संभाल सकता है, भले ही यह इस विशिष्ट मामले के लिए थोड़ा क्लंकियर हो।
पहली पंक्ति की शुरुआत में कर्सर रखें और F3रिकॉर्डिंग शुरू करने के लिए हिट करें, टेक्स्ट डालें, कर्सर को अगली पंक्ति की शुरुआत में ले जाएँ और F4रिकॉर्डिंग बंद करने के लिए हिट करें। अब F4मैक्रो को दोहराने के लिए, C-2 F4इसे दो बार दोहराने के लिए, या C-0 F4एक त्रुटि तक (जैसे कि लाइनों से बाहर चलने के रूप में) सामना करने के लिए फिर से हिट करें ।
आप बुराई को स्थापित कर सकते हैं और इसे किसी भी संख्या में vi- जैसे तरीके से कर सकते हैं - मैं प्रत्येक पंक्ति को चिह्नित करने के लिए Ctrl+ Vऔर फिर Shift+ Iसम्मिलित करने के लिए + का उपयोग करके दृश्य ब्लॉक चयन पसंद करता हूं और फिर वह पाठ लिखें जिसे आप सम्मिलित करना चाहते हैं और अंत में ESCसम्मिलित मोड से बाहर निकलें और हिट करें पाठ को प्रत्येक पंक्ति के लिए तैयार किया जाएगा। यह आयत चयनों के इमैक के समान है लेकिन कुछ कम कीस्ट्रोक्स है।
यह आर्टगन के उत्तर के समान है, लेकिन replace-regexpकिसी भी कुंजी के लिए बाध्य नहीं है।
इसलिए, मैं वास्तव में उपयोग query-replace-regexpकरता हूं जो डिफ़ॉल्ट रूप से बाध्य होता है C-M-%और फिर ^दिए गए उपसर्ग के साथ बदल देता है I saidऔर फिर !बिना किसी संकेत के सभी को बदलने के लिए टाइप करता है।
यदि आपने cua-modeसक्षम किया है, तो:
I said पाठ के रूप में डाला जाएगामैं cua-modeकाम करने के तरीके को पसंद करता हूं , एमएसीएस मानक आयत की तुलना में जहां समकक्ष होगा:
I said RET पाठ सम्मिलित करने के लिएcua-modeमानक Emacs आयत की तुलना में दो कुंजी दबाव बचाता है।
लेकिन मेरे लिए, कुआ-मोड के अतिरिक्त लाभ यह है कि मैं कर सकता है संलग्न आयत करने के लिए पाठ (मैं व्यक्तिगत रूप से करने के लिए पता नहीं कैसे करने के लिए संलग्न मानक Emacs आयत के साथ पाठ)। क्यूआ-मोड के साथ, यह RETकेवल एक कुंजी प्रेस है, इससे पहले इनपुट किया गया है I said।