यदि आप एक अलग संयोजन को दबाने का बुरा नहीं cw
मानते हैं, तो मेरा मानना है कि आप एक शॉर्टकट को परिभाषित करके आसानी से जो चाहें प्राप्त कर सकते हैं। आप जो कर सकते हैं, वह निम्नलिखित है
nmap <leader>a "1yiw:let @/=@1^Mciw
आपकी .vimrc
फ़ाइल में। ध्यान दें कि ^M
वापस कुंजी का एक पर कब्जा है, और नहीं वर्ण ^
और M
। आपको इसे इसके बाद इन्सर्ट मोड में Ctrl+ दबाकर प्राप्त करें । अब, इस परिभाषित के साथ, दबाने के समान ही होगा , लेकिन अब शब्द (परिवर्तन से पहले) आपके "अंतिम खोज रजिस्टर" में होगा (अर्थात, रजिस्टर), इसलिए आपके द्वारा परिवर्तन किए जाने के बाद दबाने और वापस करने पर सामान्य मोड में आपको अगली घटना के लिए मिलेगा। इसी तरह, दबाने से आपको पिछली घटना मिल जाएगी।VEnter<leader>a
cw
/
nN
जिस शॉर्टकट को आप निश्चित रूप से अलग शॉर्टकट का चयन कर सकते हैं <leader>a
, लेकिन मुझे लगता है कि यह एक बहुत ही सुलभ शॉर्टकट है। व्यक्तिगत रूप से मैंने इसे निर्धारित <leader>
किया ,
है कि मुझे बस ,इसके बाद प्रेस करने की आवश्यकता है a, लेकिन इसका कारण यह है कि मैं एक अमेरिकी कीबोर्ड का उपयोग नहीं करता हूं, ताकि मेरा \कुछ दूर छिपा हो (मुझे विश्वास \है कि डिफ़ॉल्ट है <leader>
)।
स्पष्टीकरण विचार वास्तव में सरल है। खोज रजिस्टर में कर्सर के नीचे शब्द को डुबोएं /
और फिर करें cw
। इस प्रकार nmap <leader>a "/yciw
मैं जो लक्ष्य कर रहा था, लेकिन दुर्भाग्य से मुझे नहीं लगता है कि आप खोज रजिस्टर में जा सकते हैं, इसलिए वर्कअराउंड शब्द को कर्सर के नीचे 1
रजिस्टर में जमा करना है, फिर रजिस्टर को उसके /
बराबर सेट करें , और फिर करें cw
। तो "1yiw
वह हिस्सा है जो कर्सर के नीचे आंतरिक शब्द को रजिस्टर में जमा करता है 1
। यदि आप आंतरिक शब्दों के बारे में नहीं जानते हैं, तो आप देख सकते हैं :help iw
। बाद में, :let @/=@1
के कब्जा से इस प्रकार Enterकहते हैं की सामग्री 1
रजिस्टर में /
। इस बिंदु पर nऔरNकर्सर के नीचे शब्द की अगली और पिछली घटना के रूप में काम करता है, और फिर ciw
ऐसा किया जाता है ताकि क्यूरर के तहत शब्द हटा दिया जाए और विम को सम्मिलित मोड में डाल दिया जाए।
शब्द बनाम आंतरिक शब्द मुझे बस एहसास हुआ कि मैंने मान लिया था कि आप पूरे शब्द को क्यूरर के तहत चाहते थे , न कि केवल क्यूरर के बिंदु से और पर। यही कारण है कि मैं हर जगह के iw
बजाय इस्तेमाल किया w
। यदि यह मामला नहीं है, तो आपको उपयोग करना चाहिए
nmap <leader>a "1yw:let @/=@1^Mcw
बजाय। यदि कर्सर शब्द के पहले अक्षर पर है, तो कोई अंतर नहीं है।
अस्वीकरण यह समाधान शायद अच्छी तरह से काम नहीं करेगा अगर आप एक पर कर्सर खड़े होने से, कुछ है कि पत्र से सामान अलग होता है पर इसका इस्तेमाल करने उदाहरण के लिए कोशिश \
या की जगह iw
से iW
, ib
, is
या ip
या कुछ और है (हालांकि मैं पता नहीं क्यों तुम करोगी इस सुविधा को पूरे वाक्यों के साथ चाहते हैं)
*
खोज को बेहतर बनाता है । विशेष रूप से यह*
आपके कर्सर को स्थानांतरित किए बिना वर्तमान शब्द का नेत्रहीन चयन करता है। एक बार यह स्थापित हो जाने पर आप*ciw
पुराने शब्द को खोज रजिस्टर में डाल सकते हैं और शब्द को बदल सकते हैं। तो फिर तुम उपयोग कर सकते हैंn
और.
।