डालने मोड में पूर्ववत करें


23

क्या इन्सर्ट मोड में रहते हुए अंतिम ऑपरेशन को पूर्ववत करने की आज्ञा है?

मैंने सिर्फ गलत रजिस्टर से पाठ को चिपकाया है <C-r>, और मेरे पास दो विकल्प हैं:

  1. हाथ से हटाओ जो मैंने अभी चिपकाया और शुरू किया।
  2. सामान्य मोड पर स्विच करें, हिट करें uऔर उस पाठ को खो दें जो मैंने मारने से पहले टाइप किया था <C-r>

क्या कोई बेहतर तरीका है?

जवाबों:


16

विम Ctrl-G uआदेश के साथ एक पूर्ववत परिवर्तन के दायरे को निर्दिष्ट करने की एक सीमित क्षमता प्रदान करता है , जो पूर्ववत अनुक्रम को तोड़ता है। देख

:help i_CTRL-G_u

आपके मामले में, समाधान <C-R>इस तरह से रिमैप होगा:

:inoremap <C-R> <C-G>u<C-R>

फिर टाइप <C-O>uकरने से आपके द्वारा टाइप किए गए परिवर्तन केवल पूर्ववत हो जाएंगे <C-R>। देख

:help i_CTRL-O

1
यह शानदार है, मुझे इस आदेश के बारे में पता नहीं था। <C-O>uस्क्रीन पर परिणाम (लगभग 4 सेकंड) टाइप करने और देखने के बीच काफी लंबा विलंब है , मैं इससे कैसे छुटकारा पा सकता हूं?
ज़ूल

मैंने उस पर भी ध्यान दिया। मुझे नहीं पता; मैं पता लगाने की कोशिश करूंगा।
गैरीजोन

अरे, क्या यह संभव है कि आप <CR> (ctrl-r) के बजाय <CR> (गाड़ी वापसी) का मतलब है?
Derwent

नहीं। मूल प्रश्न <CR> के व्यवहार से था, इसलिए मैपिंग का उपयोग किया जाता है। हालाँकि, आप उस मानचित्रण में <CR> के स्थान पर <CR> के बजाय <CR> को बदल सकते हैं। अधिक उदाहरणों में पाया जा सकता है :help i_CTRL-G_u
garyjohn

6

इन्सर्ट मोड से:

  1. यदि आपका चिपकाया गया पाठ एक पंक्ति से छोटा है (जो कि आपका दूसरा बिंदु है), बस <C-u>वर्तमान लाइन में कर्सर से पहले सभी वर्णों को हटाने के लिए मारा जाए।

  2. यदि चिपकाया गया पाठ एक पंक्ति से अधिक है, तो आपका दूसरा समाधान बेहतर काम करेगा, जिसे निम्नानुसार अनुकूलित किया जाएगा <C-o>u:।

ऊपर दिए गए दोनों बिंदु सम्मिलित रूप से शुरू और समाप्त - या समाप्त होंगे; वे वास्तव में आपके प्रस्तावित समाधानों के साथ समान हैं, बस छोटे किए गए :)


6

आप कोशिश कर सकते हैं <C-w>(बाईं ओर एक शब्द हटाता है) या <C-u>(जब एक बार दबाया गया तो कर्सर से पहले स्पष्ट वर्ण, दूसरी बार दबाए जाने पर लाइनब्रेक हटाता है)। देखें :help i_CTRL-Wऔर :help i_CTRL-U

यदि आप एक रजिस्टर से बहुत अधिक पेस्ट करते हैं, तो यह निश्चित रूप से आपके परिवर्तनों को पूर्ववत करने के लिए तेज़ है, आप इसके साथ सम्मिलित-सामान्य-मोड का उपयोग कर सकते हैं <C-o>(एक सामान्य मोड कमांड निष्पादित करें फिर सम्मिलित मोड में वापस जाएं)।

सामान्य तौर पर यह आपके संपादनों को छोटे-छोटे टुकड़ों में बदलने में मददगार होता है, जो अक्सर सामान्य मोड में वापस आ जाते हैं, ताकि आपके पास ठीक-ठाक अवांछित संभावनाएं हों।

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