मैं विम के समान ईविल में पूर्ववत व्यवहार कैसे प्राप्त कर सकता हूं?


17

ईविल में डिफ़ॉल्ट पूर्ववत व्यवहार बहुत मोटे तौर पर दानेदार है क्योंकि यह सम्मिलित मोड में प्रवेश करने और इसे एक एडिट ऑपरेशन के रूप में छोड़ने के बीच कुछ भी लेने पर विचार करता है। जब आप एक सम्मिलित करने के दौरान पाठ का पूरा अनुच्छेद दर्ज करते हैं और फिर पूर्ववत करते हैं, तो पूरा अनुच्छेद हटा दिया जाता है। इसके विपरीत, Vim एक नई पूर्ववत इकाई शुरू करता है, जब भी आप कर्सर को इन्सर्ट मोड में टेक्स्ट दर्ज करने के अलावा अन्य तरीकों से स्थानांतरित करते हैं।

ईविल में एक अनुकूलन चर है जिसे पूर्ववत इतिहास में और अधिक बारीक-बारीक उपयोग में लाया जा सकता है:

(setq evil-want-fine-undo t)

इस सेटिंग के साथ, ईविल एक नई पूर्ववत इकाई शुरू करता है जब कर्सर को इन्सर्ट मोड में ले जाया जाता है, जैसे कि विम करता है। हालाँकि, यह सेटिंग इस बात के साथ भी गड़बड़ाती है कि बदले हुए संचालन को कैसे संभाला जाता है: यदि आप किसी शब्द का उपयोग करके प्रतिस्थापित करते हैं cw, तो आपको मूल शब्द को पुनर्स्थापित करने के लिए दो बार पूर्ववत करना होगा: एक बार नए शब्द को हटाने के लिए और एक बार मूल शब्द को पुन: स्थापित करने के लिए। यह विम के साथ असंगत है और इसका कोई मतलब नहीं है क्योंकि प्रतिस्थापित परमाणु होना चाहिए।

प्रश्न: विम के पूर्ववत व्यवहार को प्राप्त करने के लिए मैं ईविल और पूर्व-पेड़ को कैसे कॉन्फ़िगर कर सकता हूं?


यहाँ एक समस्या दर्ज करें: bitbucket.org/lyro/evil/issues?status=new&status=open (बुराई आमतौर पर व्यर्थ के अपमान को कीड़े मानते हैं)।
शास्त्री १०'१४

@ शॉस्ती, आप सही हैं लेकिन अनुकूलन चर के अस्तित्व से पता चलता है कि उन्होंने वर्तमान मामले में उस नियम के लिए एक अपवाद बनाने का फैसला किया। मैं वैसे भी बग दर्ज करूंगा। चलिए देखते हैं क्या होता है।
tmalsburg

मुझे लगता है कि अनुकूलन चर वास्तव में अधिक Emacs- जैसा पूर्ववत व्यवहार प्राप्त करने के लिए है (Emacs परमाणु संचालन उसी तरह नहीं करते हैं जैसे विम)।
शास्त्री

यहाँ नया मुद्दा है: bitbucket.org/lyro/evil/issue/444/…
tmalsburg

जवाबों:


10

चूँकि @shosti ने बताया कि ईविल व्यवहार से विचलन को कीड़े के रूप में मानता है, मैंने बग दर्ज किया और ईविल के लेखकों में से एक ने इसके लिए एक नया संभावित मूल्य जोड़ा evil-want-fine-undo:

(setq evil-want-fine-undo 'fine)

इस सेटिंग के साथ, आपको कर्सर को इन्सर्ट मोड में ले जाने पर नई पूर्ववत इकाइयाँ मिल जाती हैं, लेकिन बदले हुए संचालन एक चरण में पूर्ववत होते हैं। जहां तक ​​मैं बता सकता हूं यह विम के अनुरूप है। देखें यहाँ जानकारी के लिए।


2
यह समाधान अब अनुशंसित नहीं है क्योंकि 'fineसेटिंग को हटा दिया गया है।
tmalsburg

1

चर विवरण (देखें C-h v evil-want-fine-undo) के अनुसार fineअसंगत व्यवहार के कारण मूल्य किसी भी अधिक समर्थित नहीं है।

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

(setq evil-want-fine-undo t) 

मुझे org-table सूत्र संपादन में त्रुटियों को पूर्ववत करने में समस्या थी, क्योंकि आपको सम्मिलित मोड छोड़ने की ज़रूरत नहीं है यदि आप के *Edit Forumlas*साथ बदलना चाहते हैं C-'


अद्यतन के लिए धन्यवाद। मैंने अनुरोध किया कि बिटकॉइन पर समस्या फिर से खुल गई है।
tmalsburg
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.