उद्धरण के साथ चारों ओर अनुकूलन

Dec 22 2020

मैं एक शब्द को उद्धरण के साथ घेरना चाहता हूं

यहाँ मेरा कमांड का सेट है:

  • ciw
  • तब जब मैं इन्सर्ट मोड में होता हूं, तो मैं टाइप करता हूं '(मैं
    विजुअल कोड पर vim एक्सटेंशन का उपयोग करता हूं इसलिए मुझे दो मिलते हैं 'मुझे नहीं पता कि क्या यह "सामान्य" vim के लिए मामला है)
  • तो Ctrl+ C+t
  • तब फिर p

यह काम करता है, लेकिन इसे प्राप्त करने के लिए एक छोटा संस्करण हो सकता है। क्या आप सहायता कर सकते हैं ?

जवाब

2 Macunaíma Dec 22 2020 at 20:54

आप प्लगइन को घेरने की कोशिश कर सकते हैं । एक शब्द को उद्धरण में रखने के लिए आप जाएंगे ysiw'। प्लगइन आपको शक्ति देता है:

  • जोड़ें ( ysiw")

    word -> "word"
    
  • परिवर्तन ( csiw"')

    'word'
    
  • हटाना ( ds')

    word
    

न केवल शब्दों की बल्कि सभी प्रकार की पाठ वस्तुओं के आसपास का परिवेश:

  • कोष्ठकों के अंदर शब्दों को घेरें ( ysi)")

    def func(some sequence of words) -> def func("some sequence of words")
    
  • कोष्ठक को वर्ग कोष्ठक में बदलें ( cs)])

    list = (var1, var2, var3) -> list = [var1, var2, var3] 
    
2 BLayer Dec 22 2020 at 20:43

यदि आप VS कोड एक्सटेंशन का उपयोग कर रहे हैं जो मुझे लगता है कि आप हैं तो मेरी समझ यह है कि यह कम से कम कुछ प्लगइन्स का समर्थन करता है और उनमें से एक विम-सराउंड है । यदि ऐसा है और आप प्लगइन्स का उपयोग करने के लिए खुले हैं तो बस अंतिम पैराग्राफ पर जाएं। अन्यथा, पर पढ़ें।

आपके द्वारा किए जा सकने वाले शब्द के पहले वर्ण पर कर्सर के साथ सामान्य मोड से ...

i"<C-O>f<Space>"<Esc>

Ctrl-Oइंसर्ट से, आइए इंसर्ट में वापस आने से पहले आप एक नॉर्मल मोड कमांड डालें।

f<Space> लाइन (शब्द के बाद) पर अगले अंतरिक्ष चरित्र पर जाता है।

इसके साथ समस्या यह है कि यदि शब्द एक स्थान का अनुसरण नहीं करता है (जैसे कि आप पंक्ति के अंत में हैं या यह एक पंक्चर निशान के बाद है)। आपको सामान्य मोड कमांड (जैसे f.या $<Left>) को समायोजित करने की आवश्यकता होगी ।

इसे पूरा करने का सिर्फ एक उदाहरण है, लेकिन मुझे लगता है कि एक मैनुअल कमांड को अनुकूलित करने के बजाय आपको कुछ अधिक मजबूत (लेकिन जटिल) का उपयोग करना चाहिए और इसे मैपिंग में डालना चाहिए। उदाहरण के लिए यह प्रतिस्थापन कमांड:

:%s/\<\w*\%#\w*\>/"&"

यह कहता है कि कर्सर की स्थिति ( \%#) और उसके आसपास के किसी भी शब्द वर्ण (दोनों \w*) को लें और खुद को उद्धरणों से घिरा हुआ जगह दें।

इसके लिए एक सामान्य मोड मैपिंग:

:nnoremap <leader>q :%s/\<\w*\%#\w*\>/"&"<CR>

अब आप चीजों को एक कुंजी प्रेस या दो के लिए अनुकूलित कर रहे हैं ... आपके द्वारा चुने गए मैपिंग की लंबाई।

हालांकि, मैं वास्तव में सुझाव दूंगा कि क्या आपको सिर्फ विम-सराउंड प्लगइन मिल सकता है । फिर आप आसानी से शब्दों (और अधिक) को किसी भी चीज से लपेट सकते हैं जिसे आप आमतौर पर शब्दों के साथ लपेटेंगे (जैसे कि परेंस)।