कॉलम का चयन कैसे करें तो GNU Emacs में संपादन करें?


15

मैं वर्षों से ViM, TextMate और GNU Emacs का उपयोग कर रहा हूं।

उदाहरण के लिए यहां वह पाठ है जिसे मैं संपादित करना चाहता हूं

foo
foo
foo

और यहाँ पाठ परिणाम मैं करना चाहता हूँ

bar foo
bar foo
bar foo

जब मैं विम पर होता हूं, तो मैं पहली पंक्ति और पहले कॉलम पर "Ctrl v" कर सकता हूं, फिर "2 जे" दबाएं, फिर "मैं" दबाएं, फिर "बार" टाइप करें।

जब मैं टेक्सटमेट पर होता हूं, तो नीचे (मेरे माउस द्वारा) चयन करते समय "Apple कमांड ऑप्शन" दबा सकता हूं, फिर "बार" टाइप करें।

लेकिन जब मैं ग्नू एमॅक्स 23.1 पर हूं, तो मुझे नहीं पता कि यह कैसे करना है। : ((

मैंने EmacsWiki की खोज की और चारों ओर गुगली की लेकिन समाधान नहीं मिला। यदि आप मेरा समाधान जानते हैं तो कृपया मेरा मार्गदर्शन करें। उसके लिए आभारी होंगे।


@ ट्रे जैक्सन और @ हबल कॉफी, हल, बहुत बहुत धन्यवाद !!
Arie

जवाबों:


16

दो विकल्प दिमाग में आते हैं। पहला आयताकार है (जैसा कि दूसरे उत्तर में बताया गया है)। उस के लिए स्पष्ट निर्देश हैं:

  1. गोटो पहली पंक्ति, पहला स्तंभ
  2. C-SPC
  3. गोटो अंतिम पंक्ति (पहला कॉलम)
  4. C-x r t bar SPC RET

एक अन्य विकल्प, जो बहुत अच्छा आयत / स्तंभ संपादन कमांड प्रदान करता है, CUA मोड है । यहां एक ब्लॉग पोस्ट (प्रकटीकरण: मेरा ब्लॉग) बताया गया है कि इसका उपयोग कैसे करना है। सीयूए मोड की शक्ति को देखने के लिए यह तीन मिनट के वीडियो को देखने के लिए पूरी तरह से लायक है ।

मैं निम्नलिखित के साथ सीयूए मोड को एकीकृत करता हूं (क्योंकि मैं क्षणिक मार्क मोड नहीं करना चाहता):

(setq cua-enable-cua-keys nil)
(setq cua-highlight-region-shift-only t) ;; no transient mark mode
(setq cua-toggle-set-mark nil) ;; original set-mark behavior, i.e. no transient-mark-mode
(cua-mode)

11

Emacs-24.4 में, आयतों के आधार समर्थन में थोड़ा सुधार किया गया है, इसलिए इसके C-SPCबाद उपयोग करने के बजाय C-x r t, आप यह कर सकते हैं:

C-x SPC
down down
C-t bar RET

C-SPCविधि की तुलना में इसके बारे में एक अच्छी बात यह है कि आप उस आयत के बारे में दृश्य प्रतिक्रिया प्राप्त करेंगे जिसका आप चयन कर रहे हैं। बेशक cua-modeविधि के रूप में अच्छी तरह से काम करता है (और इसी तरह काम करता है)।


दुख की बात यह है कि मुझे लगता है कि सुधार पर्याप्त नहीं हैं: cua-modeक्या यह अधिक सही था ... बस एक बात का उल्लेख करने के लिए: cua-modeएक आयत पर प्रकाश डाला गया है, मैं टाइप कर सकता हूं और पाठ जोड़ सकता हूं। वर्तमान अंतर्निहित एमएसीएस "बेस सपोर्ट" में, हाइलाइट गायब हो जाता है (चयन "रद्द कर दिया गया है") और इनपुट कर्सर बिंदु पर डाला जाता है। यह प्रति-सहज है और वह नहीं जो मैं आमतौर पर चाहता हूं (और इसका उपयोग कैसे किया जाता है cua-mode)
शिनटकेज़ोउ

@ShinTakezou: जब आप आयत-चिह्न-मोड काउंटर सहज ज्ञान युक्त पाते हैं, तो मुझे लगता है कि कुआ का व्यवहार काउंटर सहज है। सौभाग्य से, आप का चयन करने के लिए मिलता है। यदि आप cua के समर्थन को पसंद करते हैं, तो आप या तो cua-mode को सक्षम कर सकते हैं या (यदि आप केवल इसका आयत समर्थन चाहते हैं) (global-set-key [?\C-x ?\s] 'cua-rectangle-mark-mode)
स्टीफन

वास्तव में मैं क्या कर रहा हूँ: cua- मोड से चिपके हुए। यह काम करता है: एक कॉलम को हाइलाइट करें, टेक्स्ट टाइप करें, किया। अन्यथा: एक कॉलम को हाईलाइट करें, मान लें कि आप टेक्स्ट जोड़ना चाहते हैं, मिनीबफ़र में टेक्स्ट टाइप करें (आप इसे टाइप करते हुए बफर में दिखाई नहीं देंगे ...), ... किया। आप बाद में अंतिम चार में एक टाइपो देखेंगे ... क्यूआ-मोड में, मैं इसे प्रकार के रूप में देख सकता हूं, इसे हटा सकता हूं (संपूर्ण सम्मिलित नहीं करें), पुनर्विचार करें, एक और चार्ट डालें ... और आयत प्रकाश डाला गया जैसा कि मुझे चाहिए, btw, और मैं इसे छोटा कर सकता हूं, इसे बड़ा कर सकता हूं, कुछ और पाठ टाइप कर सकता हूं, या "नया" काट सकता हूं ... इसलिए, मेरे लिए यह अधिक सहज और आरामदायक है।
शिनटकेज़ोउ

मुझे खुशी है कि आप इसे पसंद करते हैं ;-)
स्टीफ़न

BTW, Emacs-25 में, गैर-CUA आयताकार C-tऑपरेशन (उर्फ C-x r t) आपको नए सम्मिलित पाठ का पूर्वावलोकन दिखाता है जैसे ही आप इसे टाइप करते हैं।
स्टीफन

2

Emacs में इस तरह के स्तंभों को 'आयतों' के रूप में संदर्भित किया जाता है। तो यह प्रासंगिक प्रलेखन पृष्ठ है।

इन सभी आदेशों के लिए आवश्यक है कि क्षेत्र में वह आयत हो, जिस पर आप काम कर रहे हैं। इसलिए आपको आयत में ऊपरी बाएँ वर्ण पर चिह्न सेट करने की आवश्यकता है और क्षेत्र को आयत में नीचे दाएं वर्ण तक विस्तारित करना होगा। आपके द्वारा आदेश के बाद वह M-x string-insert-rectangleस्ट्रिंग डालने के लिए आपको संकेत देता है।


1

सबसे छोटा उत्तर: CUA आयत मोड को सक्षम करें C-RET

तो, आपके मामले के लिए, यह होगा

  1. पहली पंक्ति, पहले कॉलम पर जाएं और C-RETCUA मोड में प्रवेश करें
  2. अंतिम पंक्ति, पहले कॉलम पर जाएं और बस टाइप करें barSPC
  3. ESCया CG के माध्यम से CUA मोड से बाहर निकलें

एक अधिक विस्तृत समाधान और CUA के लिंक के लिए @ ट्रे का उत्तर देखें।


2
हां, मेरे पास टिप्पणी करने के लिए बहुत कम प्रतिष्ठा है। मैं उसका जवाब दोहराना नहीं चाहता, लेकिन मैं सीयूए डॉक्टर से कुछ और जानकारी जोड़ूंगा।
मार्टिन

0

आप इसके लिए रिप्लेस-रेगेक्सप का उपयोग कर सकते हैं:

  1. अंतिम पंक्ति -> C SPC पर चिह्न सेट करें और अंतिम पंक्ति पर जाएं
  2. टाइप करें Mx की जगह- regexp RET मिनीबफ़र में (मेरे पास इस श्री के लिए एक महत्वपूर्ण बंधन है)
  3. दे ^ RET
  4. बार टाइप करें और RET को हिट करें

यह लाइन की शुरुआत में बार को जोड़ेगा।

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