मोडल संपादन के लिए कौन से पैकेज उपलब्ध हैं?


13

Emacs में मोडल एडिटिंग के लिए कौन से पैकेज उपलब्ध हैं? आप क्या उपयोग करते हैं और क्यों?

आइए प्रति उत्तर एक पैकेज पोस्ट करने का प्रयास करें। मैं हर पैकेज के फायदे और कमियों का उल्लेख करता हूं।


यहाँ मोडल एडिटिंग की मेरी परिभाषा है (मुझे समर्पित विकिपीडिया लेख नहीं मिला):

मोडल एडिटिंग - टेक्स्ट एडिटिंग की शैली जब उपयोगकर्ता समय-समय पर "सामान्य मोड" के बीच स्विच करते हैं, जब कुंजियाँ उनके पात्रों को सम्मिलित करने का कारण नहीं बनती हैं, लेकिन पाठ और "मोड डालें" पर विभिन्न ऑपरेशन करते हैं जब कुंजियाँ संबंधित वर्ण डालती हैं। निश्चित रूप से अधिक मोड हो सकते हैं। अधिकांश आधुनिक संपादक मोडल नहीं हैं। मोडल टेक्स्ट एडिटर का एक उदाहरण Vi (Vim) है।


और "मोडल एडिटिंग" क्या है?
लिंडनाइडर

@ लिंडेंसर, मैंने प्रश्न को अवधारणा को समझाने का अपना प्रयास जोड़ा।
मार्क कार्पोव

जवाबों:


13

evil, xtensible छठी एल Emacs के लिए Ayer

संदेहास्पद नाम एक तरफ, evilवर्तमान स्थिति है , जब यह vimEmacs (और संभवतः कहीं और उस मामले के लिए) में अनुकरण की बात आती है । यह कई विशेषताओं का समर्थन करता है जो अन्य विम अनुकरण पैकेजों में शामिल हैं, जिनमें शामिल हैं:

  • vim textobjects
  • vim रजिस्टरों
  • vim कीबोर्ड मैक्रोज़
  • ex आदेशों

लाभ

  • Emacs के बिना सिस्टम पर स्विच करने के दौरान मुख्य संगतता का vimअर्थ है कि आप अपनी मांसपेशी मेमोरी नहीं खोते हैं।
  • बहुत परिपक्व और व्यापक रूप से उपयोग किया जाता है (उदाहरण के लिए बहुत सारे सामुदायिक पैकेज)
    • के लिए कई पैकेज vimपोर्ट किए गए हैं evil
  • vim शैली व्याकरण मॉड्यूलर है और उपयोगकर्ता के विस्तार के लिए बहुत अच्छी तरह से उधार देता है
  • evil अपने आप में बहुत एक्स्टेंसिबल है: अपने खुद के टेक्सोबोबिज, ऑपरेटर, और गति बनाएं!

नुकसान

  • शायद अन्य पैकेजों के साथ इसे अच्छा बनाने के लिए कुछ फिडलिंग की आवश्यकता होगी
    • सौभाग्य से, evilसबसे आम उपयोग-मामलों को हास्यास्पद रूप से आसान बनाता है।
  • evilएक बहुत ही जटिल प्रणाली है। बुराई कोर पर हैकिंग काफी शामिल हो सकती है।
  • vimकीबाइंडिंग जरूरी एर्गोनोमिक रूप से इष्टतम नहीं हैं। कभी-कभी, वे एक अलग प्रणाली के लिए पोर्ट किए जाने पर थोड़ा मनमाना महसूस कर सकते हैं।
  • BitBucket (मर्क्यूरियल) पर होस्ट किया गया है।

मैं Emacs एक बुरा स्वाद के लिए एक्स्टेंसिबल vi परत के लिए संक्षिप्त बुराई पाया ।
नाम

@ मेरा विचार नहीं है, लेकिन ऐसा कैसे?
PythonNut

एक शब्दकोष से: बुराई = गहराई से अनैतिक और पुरुषवादी, अवतार लेने या शैतान की ताकतों से जुड़ी, हानिकारक, अत्यंत अप्रिय, ...
नाम

5
@ किसी ऐसे व्यक्ति के रूप में, जिसने खुद को "नाम" दिया है, मुझे लगता है कि आप चीजों का नाम लेते समय हास्य के उपयोग की सराहना करेंगे। :-) ईविल के मामले में, यह विडंबना है (देखें en.wikipedia.org/wiki/Irony#Definitions )। मुझे लगता है कि यह एक एमाक्स पैकेज के लिए दिए गए सबसे अच्छे नामों में से एक है, और यह एक लाभ के रूप में सूचीबद्ध करेगा!
तारसियस

@PythonNut मुझे लगता है कि मर्क्यूरियल के उपयोग से बिटबकैट का उपयोग एक समस्या (वास्तव में कोई समस्या नहीं है) से कम है।
तारसियस

11

वहाँ god-mode( https://github.com/chrisdone/god-mode ) है, जो मानक Emacs कुंजी बाइंडिंग का उपयोग करता है, लेकिन संशोधक को रखने की आवश्यकता को हटा देता है। जब ईश्वर-मोड सक्षम होता है तो C-...बाइंडिंग को किसी संशोधक की आवश्यकता नहीं होती है और M-...बाइंडिंग एक संशोधक के बजाय एक उपसर्ग का उपयोग करते हैं।

जीथब पृष्ठ से एक उदाहरण के रूप में:

इससे पहले: Cp Ck Cn M- ^) Cj Cy Mr Cx zz M-2 Mg Mg Cx Cs

के बाद: pkng ^) jygr। । 2 ggxs


1
कृपया अपने उत्तर का विस्तार करें, इसलिए यह केवल एक कड़ी नहीं है।
मार्क कारपोव

@Stefan - मैंने आपके उत्तर को थोड़ा विस्तार देने की स्वतंत्रता ली है। हालांकि आप चाहते हैं बदलने के लिए स्वतंत्र महसूस करें।
ग्लूकोज

ग्लूकास: धन्यवाद! @ मर्क: देव-विधा के बारे में अधिक कुछ नहीं जानना, मैं आसानी से अपने उत्तर का विस्तार नहीं कर सका। मैंने इसे इस उम्मीद में पोस्ट किया कि ग्लूकोस जैसा कोई खाली जगह भर जाएगा।
स्टीफन

6

मोडलका मोडल एडिटिंग ब्लॉक पर सबसे नया बच्चा होना चाहिए। गितुब परियोजना 10 दिन पुरानी है। मेरे पास टिप्पणी करने या मूल्यांकन करने के लिए पर्याप्त उपयोग समय नहीं है, लेकिन यहां बताया गया है कि यह कैसा है:

यह Emacs में मोडल एडिटिंग पर स्विच करने में मदद करने के लिए एक बिल्डिंग किट है। पैकेज का मुख्य लक्ष्य एमएसीएस में संभव के रूप में प्राकृतिक और देशी रूप में संपादन करना है। कोई हैक नहीं है, कोई कोने के मामले नहीं हैं, कोई अनुकरण नहीं है - बस जिस तरह से आप चाहते हैं, उसे औपचारिक रूप से संपादित करना शुरू करें।

प्रलेखन भी तुलना और विरोधाभासों अन्य आम मोडल समाधान, इस तरह के साथ Modalka evil, god-mode, boon, आदि


6

मेरा खुद को जोड़ना, प्रोत्साहन के लिए धन्यवाद @ मर्क।

Xah फ्लाई कीज़

एमएसीएस कुशल प्रणाली होने के लक्ष्य के साथ, एमाक्स के लिए जमीन से डिज़ाइन किया गया, एर्गोमेक्स-मोड के साथ वर्षों के अनुभव से। कुंजी विकल्प कुंजी आवृत्ति और कुंजी आसान-से-प्रेस स्कोर के आंकड़ों के आधार पर विज्ञान जितना संभव हो उतना संभव है। सबसे अधिक बार उपयोग किए जाने वाले कमांड को सबसे आसान-से-प्रेस कुंजी के लिए मैप किया जाता है। अन्य मुद्दों, जैसे समूहन, और कीबाइंडिंग बिग्राम, को भी 3 साल के साप्ताहिक प्रयोग से माना जाता है।

दिलचस्प अंक:

  • सभी Cx कमांड्स 2 से 3 सिंगल कीज़ के अनुक्रम द्वारा की जाती हैं। Xah-fly-keys में, Cx कभी आवश्यक नहीं है। M- कभी भी आवश्यक नहीं है।
  • किसी भी GNU एमएसीएस की कुंजी के साथ संघर्ष नहीं करता है, क्योंकि यह Ctrl या मेटा (सी -7, सी -8 को छोड़कर, लेकिन आवश्यक नहीं है) को बांधता नहीं है। आप सम्मिलित मोड में xah-fly-keys हो सकते हैं, और GNU Emacs का उपयोग उस तरह से कर सकते हैं जैसा आप सामान्य रूप से करते हैं।
  • यह भी माना जाता है कि अधिकतम संपादन दक्षता में आदेशों का क्या सेट होता है। तो, पैकेज ~ 80 कस्टम संपादन कमांड का उपयोग करता है। (उदाहरण के लिए, यदि कोई चयन नहीं है तो कॉपी करेंट लाइन को कॉपी कर देगा। GNU Emacs के ~ ऊपरी / निचले / क्षेत्र / क्षेत्र के 6 भिन्नरूपों के बजाय एक एकल कमांड लेटर केस को टॉगल कर देगा।
  • कार्यान्वयन यथासंभव सरल है। कोई मैक्रो नहीं, कोई सलाह नहीं, चाबियों का कोई जटिल रीमैपिंग नहीं, केवल एक युगल हुक का उपयोग किया जाता है। (अच्छा या बुरा?!)
  • 10 से अधिक कीबोर्ड लेआउट का समर्थन करता है, जिनमें शामिल हैं: QWERTY, DVorak, colemak, colemak-mod-dh, qwerty-abnt, qwertz, azerty, programer-dvorak, workman, norman।

नुकसान:

  • पहली बार vi सीखने की तरह, आपको अपनाने के लिए एक महीने की आवश्यकता होगी।
  • बुराई-विधा की तुलना में कम जाना जाता है।
  • प्रमुख मोड के लिए, आपको अभी भी Cc का उपयोग करना होगा। (इसलिए, आप इस समस्या को हल करने के लिए अन्य पैकेज जैसे कि गॉड-मोड या हाइड्रा का उपयोग कर सकते हैं।)

मैं लेखक हूं, इसलिए चेतावनी दी जा सकती है कि मैं अनजाने में पक्षपाती हो सकता हूं। टिप्पणी या सही करने के लिए स्वतंत्र महसूस करें।


कोई भी मौका आप अन्य कीबोर्ड लेआउट का समर्थन करेंगे? मुझे पता है कि ErgoEmacs करता है। मैं इसे एक कोशिश दे सकता हूं, लेकिन कैज़ुअल प्रयोग के लिए ड्वोरक पर स्विच करने की बार बहुत अधिक है।
पाइथननॉट

@PythonNut हाँ, सर्वोच्च प्राथमिकता। मुझे एक हफ्ते में उम्मीद है। मुख्य बात यह है कि मैं इसे कैसे लागू करना चाहता हूं।
Xah ली

आह। बहुत ही शांत। जब यह बाहर आएगा तो मैं इसे एक चक्कर दूंगा।
19

4

वरदान

मॉडल संपादन के लिए बून कम ज्ञात पैकेज में से एक है। यह वीआई (या विम) का अनुकरण नहीं करता है, लेकिन कोलेमक कीबोर्ड लेआउट के लिए अनुकूलित मूल लेआउट प्रदान करता है।

लाभ और डिजाइन सिद्धांत

  • स्थानिक आवंटन पहले, mnemonics दूसरा: कमांड की चाबियों का आवंटन कीबोर्ड पर कुंजियों के स्थानों पर प्राथमिकता में आधारित है। कुंजी टोपी पर जो कुछ भी छपा है वह एक माध्यमिक चिंता है।

  • आसान उंगली रोल: आम संयोजन या तो बाएं / दाएं हाथ वैकल्पिक या आसान एक हाथ रोल होना चाहिए।

  • सबसे अधिक उपयोग किए जाने वाले आदेशों के लिए घरेलू पंक्ति और मजबूत उंगलियों का उपयोग

  • आसान नेविगेशन: कई कमांड नेविगेशन के लिए बाध्य हैं। इससे घूमने में सुविधा होती है। क्योंकि आंदोलनों को क्षेत्र-परिभाषाओं के रूप में दोगुना हो जाता है, यह हेरफेर कमांड (ऑपरेटर) को अधिक शक्तिशाली बनाता है।

नुकसान

  • आपको पुन: सीखने की ज़रूरत है कि संपादन प्रधानता के संग्रह के बाद से संपादक के साथ बातचीत कैसे करें और कीबोर्ड पर उनका प्लेसमेंट काफी अनूठा है।

1
यह थोड़ा अजीब लगता है कि बून वास्तव में इस बात की परवाह नहीं करता है कि कुंजी पर क्या है, फिर भी इस बात को लागू करता है कि चाबियाँ कोलेमैक हैं। ऐसा लगता है कि यह लेआउट अज्ञेयवादी होना चाहिए।
PythonNut

@PythonNut, मुझे लगता है कि लोगों को किसी तरह कुंजियों को संदर्भित करने की आवश्यकता है :-) मुझे लगता है कि इसे पूरी तरह से अन्य लेआउट के साथ काम करना संभव है।
मार्क कर्पोव

बून में अब QWERTY और QWERTZ का समर्थन है, github.com/jyp/boon#installation देखें । मैंने उस उत्तर को प्रतिबिंबित करने के लिए अद्यतन किया।
रजु-कड़वा

3

Ergoemacs मोडल एडिटिंग को भी सपोर्ट करता है। यह vi का अनुकरण नहीं करता है, लेकिन अक्सर उपयोग किए जाने वाले आदेशों के लिए Alt कुंजी का उपयोग करता है। उदाहरण के लिए, चलती कर्सर Alt प्लस दायां हाथ उलटा T है (QWERTY पर यह Alt+ के jलिए left, Alt+ lदाईं ओर, Alt+ के iलिए upऔर Alt+ के kलिए down) है। चर या शब्द हटाना Altबाएं हाथ की होम-पंक्ति कुंजियों के साथ है। कुंजी विकल्प आसानी से प्रेस के लिए कमांड आवृत्ति और कुंजी की स्थिति पर आधारित हैं।

  • मोडल एडिटिंग शुरू करने के लिए यूजर प्रेस कर सकता है f6
    • एक बार f6दबाए जाने के बाद , सबसे अधिक बार उपयोग की जाने वाली कुंजियों को अब एक महत्वपूर्ण कुंजी संयोजन की आवश्यकता नहीं होती है।
    • इसलिए, QWERTY पर, jहै left, jहै right, iहै upऔर kडाउन है)।
  • मोडल कमांड मोड दबाने से बाहर निकल जाता है return, f6या escape

पारंपरिक मोडल प्रतिमान के अलावा, एक अर्ध मोडल प्रतिमान है जो किसी भी संशोधक (जैसे देव-मोड) का उपयोग किए बिना किसी भी C-xया C-cप्रमुख संयोजन तक पहुंचने की अनुमति देता है ।

  • क्वैसी-मोडल की शुरुआत QWERTY apps fके C-cसाथ होती है, जिसके लिए नियंत्रण कुंजी दबाई जाती है और जिसके लिए QWERTY होता apps dहै C-x
  • इस प्रमुख अनुक्रम को पूरा करते समय appsकुंजी उन संशोधकों के प्रकार को बदल देगी जिन्हें नीचे दबाए जाने के लिए माना जाता है।
  • एक बार कमांड को कॉल करने के बाद, एर्गोमेमाक्स संपादन मोड को फिर से शुरू करता है।
  • किसी भी महत्वपूर्ण अनुक्रम के दौरान आप नीचे रखी गई कुंजियों के प्रकार भी बदल सकते हैं। यह बस appsफिर से कुंजी दबाने से होता है।

कमांड कुंजियों को बदलने के अलावा, एर्गोमेक्स-मोड आपको इसे टाइप करते समय प्रमुख अनुक्रम के बारे में चीजें बदलने की अनुमति देता है:

  • आप एक कुंजी अनुक्रम के बीच में उपसर्ग तर्क को दबाकर संपादित कर सकते हैं f2
  • दबाने backspaceपर अंतिम कुंजी दबाया जाता है।
  • Apps आपको किसी भी महत्वपूर्ण अनुक्रम के दौरान नीचे रखी गई कुंजियों को बदलने की अनुमति देता है।

ergoemacs- मोड मौलिक कुंजियों के लिए कुछ भी करने का प्रयास करता है। उदाहरण के लिए, यदि next-lineorg- मोड के लिए एक विशेष कुंजी को परिभाषित करता है , तो ergoemacs, org- मोड में Alt+ के लिए इस कमांड का उपयोग करता kहै।

लाभ:

  • जीएनयू एमएसीएस का हिस्सा, ईएलपीए में।
  • बॉक्स से बाहर "सार्वभौमिक" विंडोज / लिनक्स कुंजी का समर्थन करता है। जैसे ओपन ( C-o), क्लोज़ ( C-w), सेलेक्ट ऑल ( C-a), कॉपी ( C-c), कट ( C-x), पेस्ट ( C-v), आदि।
  • काफी लोकप्रिय है।
  • कई लेआउट्स का समर्थन करता है, जिनमें क्वर्टी, ड्वोरक, कोलेमक, बीपो, और कई अन्य अंतर्राष्ट्रीय लेआउट शामिल हैं, जो यह सुनिश्चित करने के लिए कुंजियों को समायोजित करते हैं कि वे होम रो पर हैं (Mi in QWERTY म्यू इन कम्मॉक) होगा।
  • थीम का वर्णन करके अपने कीबोर्ड लेआउट की एक छवि emacs में दिखाता है।
  • विषय बनाकर एक्सटेंशन सिस्टम के माध्यम से कुंजी अनुकूलन योग्य हैं।
  • आप किसी भी मनमाने ढंग से कीमैप को सेटअप कर सकते हैं (अभी तक दस्तावेज नहीं)।

नुकसान:

  • स्टार्टअप पर गति धीमी है।
    • अस्थिर मास्टर में, पहला स्टार्टअप धीमा है (न्यूनतम सेटअप के लिए ~ 5 सेकंड), (मेरे स्टार्टअप के लिए ~ 20 सेकंड)
    • दूसरा दूसरा स्टार्टअप बहुत तेज है (मेरे जटिल सेटअप के लिए यह ~ 4 सेकंड है)।
    • ऐसा इसलिए है क्योंकि ergoemacs- मोड हर सक्रिय कीमैप को emacs में बदल रहा है और कैशिंग कर रहा है। दूसरे स्टार्टअप पर, ये सेटिंग्स सहेजी जाती हैं।
  • जटिल कोड।

Https://github.com/ergoemacs/ergoemacs-mode देखें


2

एक अन्य अर्ध-मोडल विकल्प हाइड्रा है:

https://github.com/abo-abo/hydra

वेबसाइट के अनुसार

कल्पना करें कि आपने अपने कॉन्फिग में C j j और Cc k को बांधा है। आप Cc j और Cc k को कुछ (मनमाना) क्रम में कॉल करना चाहते हैं। हाइड्रा आपको इसकी अनुमति देता है:

  • अपने कार्यों को इस तरह से बांधें कि Cc jjkk3j5k दबाने पर Cc j Cc j Cc k Cc k M-3 Cc j M-5 Cc k दबाने के बराबर हो। जम्मू या कश्मीर के अलावा कोई भी कुंजी इस राज्य से बाहर निकलती है।

  • इस कार्य के समूह में एक कस्टम संकेत असाइन करें, ताकि आप Cc को दबाने के तुरंत बाद जान सकें कि आप j या k के साथ अनुसरण कर सकते हैं।

मैंने इसका उपयोग नहीं किया है लेकिन यह दिलचस्प लगता है।

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