2009-06-24 12 views
15

विम में, दृश्य ब्लॉक को 'gv' कमांड द्वारा याद किया जा सकता है ताकि एकाधिक आदेश आसानी से लागू किए जा सकें। (जैसे, टिप्पणी करें, फिर इंडेंट करें, फिर do_something_fun)।Emacs क्षेत्र का चयन करते हैं, क्योंकि विम शॉर्टकट 'gv'

Emacs में, यह कैसे प्राप्त किया जा सकता है? [सी-एक्ससी-एक्स] केवल तभी काम करता है जब वर्तमान कर्सर स्थिति रहता है जहां पिछले ब्लॉक समाप्त होता है। यदि पिछला ब्लॉक बदल दिया गया था, तो निकटतम 'पॉइंट-टू-रजिस्टर' और 'कूद-से-रजिस्टर' के माध्यम से जाना है।

बस मुझे उत्सुकता है कि एक एएमएक्स अंतर्निहित कमांड एक शॉट में बना रहा है।

+2

ओह, क्यों विम से इमैक तक जाते हैं? – Brian

+7

धार्मिक पसंद-संपादक संपादक बहस में नहीं होना चाहते हैं। 2 साल पहले, मैंने Emacs पर स्विच किया, और मुझे यह पसंद है। – Raymond

+0

क्या आप वर्णन कर सकते हैं कि आप अधिक विस्तार से क्या मतलब रखते हैं? मैं यह जानने के लिए पर्याप्त परिचित नहीं हूं कि आप क्या पूछ रहे हैं। – baudtack

उत्तर

10

यदि मैं सही ढंग से समझता हूं कि आप क्या पूछ रहे हैं, तो आपको कुछ भी करने की आवश्यकता नहीं है। जब आप Emacs में कोई क्षेत्र चुनते हैं, तब तक यह तब तक रहता है जब तक आप कोई नया चयन नहीं करते। तो आप क्षेत्र का चयन कर सकते हैं और फिर जितनी चाहें उतनी कार्रवाइयां कर सकते हैं।

+1

Emacs 23 (.0.93.1) का उपयोग करना। धन्यवाद, लेकिन जैसा आपने उल्लेख किया है, यह काम नहीं करता है। मैं शुरुआत के लिए सीटीआरएल-एसपीसी का उपयोग कर रेजन का चयन कर रहा हूं, अंत के लिए वर्तमान-सकारात्मक। क्षेत्र चयन के बाद हाइलाइट करता है। एक आदेश लागू करने से यह हाइटलाइट दूर हो जाता है। मैंने माना कि यह क्षेत्र को अचयनित करता है। – Raymond

+2

@ रेमंड एक और कार्रवाई करने का प्रयास करें। क्षेत्र अब हाइलाइट नहीं किया गया है लेकिन यह अभी भी चुना गया है। – baudtack

+0

+1 सहमत है कि यह समाधान काम करता है। –

11

यदि क्षणिक मार्क मोड बंद है, तो क्षेत्र हमेशा सक्रिय रहता है। यदि यह चालू है (जो यह आपकी स्थिति की तरह लगता है), तो क्षेत्र को कम करने के दौरान क्षेत्र कमांडों को काम करने की अनुमति देने के लिए आप mark-even-if-inactive को गैर-शून्य पर सेट कर सकते हैं।

हालांकि, ध्यान दें कि C-u C-SPC का उपयोग करके आप पिछले मार्क पोजीशन के माध्यम से वापस चक्र भी चला सकते हैं - यह मार्क रिंग पॉप करेगा। एक बार जब आप वापस आना चाहते हैं, तो सी-एक्स सी-एक्स आपके इच्छित क्षेत्र को फिर से उजागर करेगा। (इस सुविधा के साथ इसे महसूस करने में थोड़ा सा खेल लग सकता है, लेकिन यही कारण है कि मैं अब Emacs से दूर नहीं जा सकता।)

+0

इस बात को ध्यान में रखते हुए, इस संबंध में Emacs vi से अधिक लचीला प्रतीत होता है। हालांकि, ओपी द्वारा वर्णित अधिकांश स्थितियों में सी-एक्स सी-एक्स पर्याप्त होना चाहिए। – fotNelton

1

इसके अलावा संकीर्ण-क्षेत्र (CTRL-x nn) लागू होता है उस समय से केवल उस क्षेत्र तक प्रत्येक आदेश- आप शेष बफर को चोट नहीं पहुंचा सकते हैं, यह भी नहीं दिखाता है। पूरा संपादन करने के बाद, पूरे बफर को वापस पाने के लिए विस्तृत करें (CTRL-x n w)। सीएमएम

+0

अच्छा, धन्यवाद, यह एक दिलचस्प है। – fotNelton

2

लगता है जैसे आप द्वितीयक चयन की तलाश में हैं, जो क्षेत्र बदल सकता है, भले ही रहता है। (यह डाल रहता है जब तक आप इसे ले जाते हैं।)

देखें:

  • Emacs पुस्तिका, नोड Secondary Selection
  • Emacs विकि पृष्ठ Secondary Selection
  • पुस्तकालय second-sel.el:
0

जवाब के बाद से यहां और इसी तरह के अन्य एसओ सवालों के लिए मेरे लिए मदद नहीं की गई (सीयूए-मोड, इमाक्स 24, न केवल इंडेंट-कठोर), मैंने खोज जारी रखी और आखिरकार reselect-last-region इस collection of custom function (starting line 670) में परिभाषित किया गया है। यह मेरे लिए एक आकर्षण की तरह काम करता था - और उम्मीद है कि दूसरों के लिए अभी भी यहां पहुंच रहा है।

संबंधित मुद्दे