हर पंक्ति में एक उपसर्ग कैसे जोड़ें?


35

मेरे पास कोड है:

Hello
There
I am some code

और इसके सामने कोड जोड़ना चाहते हैं, जैसे:

I said Hello
I said There
I said I am some code

तो मैं प्रत्येक पंक्ति में एक उपसर्ग कैसे जोड़ूंगा?

जवाबों:


47

आप के साथ एक उपसर्ग जोड़ सकते हैं 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

3
आप दूसरे व्यक्ति हैं जो अच्छा उत्तर बिल्ला कमाते हैं :)
nicael

एक विकल्प का उपयोग करना है M-x string-insert-rectangle। यह बहुत समान है, लेकिन चयन की प्रत्येक पंक्ति की शुरुआत में string-insert-rectangle सम्मिलित करता है , जबकि string-rectangle प्रतिस्थापित करता है , इसलिए बाद वाले के साथ आपको अपने चयन के बारे में अधिक सटीक होना होगा यदि आप कुछ भी लिखना नहीं चाहते हैं।
जेफ क्लिट्स

32

आप प्रत्येक लाइन पर एक कर्सर लगाने के लिए कई-कर्सर-मोड का उपयोग कर सकते हैं । फिर, आपके द्वारा टाइप किया गया कोई भी पाठ प्रत्येक पंक्ति में डाला जाएगा।

आप कोड के टुकड़े की शुरुआत में बिंदु के साथ शुरू करेंगे:

▮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

यहां एक वीडियो है जो दिखाता है कि यह कैसे काम करता है।


26

व्यक्तिगत रूप से, मैं पसंद करता हूं replace-regexp("मैंने कहा" के साथ "^" बदलें)।


12

एक अन्य विकल्प मैक्रोज़ का उपयोग करना है, जो आयताकार चयन या एकाधिक कर्सर से अधिक कार्यों को संभाल सकता है, भले ही यह इस विशिष्ट मामले के लिए थोड़ा क्लंकियर हो।

पहली पंक्ति की शुरुआत में कर्सर रखें और F3रिकॉर्डिंग शुरू करने के लिए हिट करें, टेक्स्ट डालें, कर्सर को अगली पंक्ति की शुरुआत में ले जाएँ और F4रिकॉर्डिंग बंद करने के लिए हिट करें। अब F4मैक्रो को दोहराने के लिए, C-2 F4इसे दो बार दोहराने के लिए, या C-0 F4एक त्रुटि तक (जैसे कि लाइनों से बाहर चलने के रूप में) सामना करने के लिए फिर से हिट करें ।


9

आप बुराई को स्थापित कर सकते हैं और इसे किसी भी संख्या में vi- जैसे तरीके से कर सकते हैं - मैं प्रत्येक पंक्ति को चिह्नित करने के लिए Ctrl+ Vऔर फिर Shift+ Iसम्मिलित करने के लिए + का उपयोग करके दृश्य ब्लॉक चयन पसंद करता हूं और फिर वह पाठ लिखें जिसे आप सम्मिलित करना चाहते हैं और अंत में ESCसम्मिलित मोड से बाहर निकलें और हिट करें पाठ को प्रत्येक पंक्ति के लिए तैयार किया जाएगा। यह आयत चयनों के इमैक के समान है लेकिन कुछ कम कीस्ट्रोक्स है।


7

यह आर्टगन के उत्तर के समान है, लेकिन replace-regexpकिसी भी कुंजी के लिए बाध्य नहीं है।

इसलिए, मैं वास्तव में उपयोग query-replace-regexpकरता हूं जो डिफ़ॉल्ट रूप से बाध्य होता है C-M-%और फिर ^दिए गए उपसर्ग के साथ बदल देता है I saidऔर फिर !बिना किसी संकेत के सभी को बदलने के लिए टाइप करता है।


4

यदि आपने cua-modeसक्षम किया है, तो:

  • C-a लाइन की शुरुआत करने के लिए,
  • C-RET आयत शुरू करने के लिए,
  • (डाउन की) तीसरी पंक्ति में जाने के लिए दो बार,
  • I said पाठ के रूप में डाला जाएगा
  • C-RET आयत को समाप्त करने के लिए

मैं cua-modeकाम करने के तरीके को पसंद करता हूं , एमएसीएस मानक आयत की तुलना में जहां समकक्ष होगा:

  • C-a लाइन की शुरुआत करने के लिए,
  • C-SPC आयत शुरू करने के लिए,
  • (डाउन की) तीसरी पंक्ति में जाने के लिए दो बार,
  • C-x r t I said RET पाठ सम्मिलित करने के लिए

cua-modeमानक Emacs आयत की तुलना में दो कुंजी दबाव बचाता है।

लेकिन मेरे लिए, कुआ-मोड के अतिरिक्त लाभ यह है कि मैं कर सकता है संलग्न आयत करने के लिए पाठ (मैं व्यक्तिगत रूप से करने के लिए पता नहीं कैसे करने के लिए संलग्न मानक Emacs आयत के साथ पाठ)। क्यूआ-मोड के साथ, यह RETकेवल एक कुंजी प्रेस है, इससे पहले इनपुट किया गया है I said

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