सवाल विम के साथ कोष्ठक में संलग्न


क्या विम में कुछ पाठ कोष्ठक (या घुंघराले ब्रैकेट) में संलग्न करने का कोई तरीका है?

दूसरे शब्दों में, आप यह कैसे करेंगे?

प्रारंभिक स्ट्रिंग:

It is sunny outside.

अंतिम स्ट्रिंग:

It is (sunny) outside.

एक मजाकिया नोट पर, मैंने अभी मारा :w इस सवाल को प्रस्तुत करने के लिए।

मुबारक vim-ing, SOCommunity!


44
2017-11-09 20:06


मूल


ऐसा लगता है कि एक मैक्रो आसानी से काम पूरा कर सकता है, लेकिन मुझे विशेष रूप से एक निर्धारित करने की हिम्मत नहीं है - मैं अभी भी वीआईएम में बहुत हरा हूं। लेकिन कुछ ऐसा है जैसे 'शब्द की शुरुआत करने के लिए कदम, बाएं माता-पिता डालें, शब्द के अंत में आगे बढ़ें, सही माता-पिता को एक मैक्रो की तरह लगता है जो ज्यादातर मामलों में काम करेगा ... - Triptych
@Triptych - जिस तरह से आपने सुझाव दिया है, ठीक उसी तरह मैक्रो के बजाय मैपिंग। मेरा जवाब देखें - Rook


जवाब:


Surround.vim चाल करना चाहिए यदि आप इसे '।' से दोहराना चाहते हैं, तो देखें यहाँ


29
2017-11-09 20:09





एक शब्द के लिए, मैं इसका उपयोग कर रहा हूं:

bcw()<Esc>P

यही है, शब्द की शुरुआत में जाएं, शब्द काट लें और डालने मोड में जाएं, ब्रैकेट टाइप करें और फिर सम्मिलित करें मोड से बाहर निकलें और शब्द को वापस पेस्ट करें।

ध्यान रखें कि यह आपके यंक रजिस्टर को ओवरराइट करेगा।

आप निश्चित रूप से बीसीडब्ल्यू को प्रतिस्थापित कर सकते हैं, जिसमें आपको जो भी आंदोलन और चयन प्रकार चाहिए, जैसे

5cc{<Enter>}<Esc>P

46
2017-07-11 14:46



जब मैं अपने यंक ओवरराइट हो जाता हूं तो मुझे इससे नफरत है। - d1str0
कोई प्लगइन की जरूरत नहीं है। महान। ईमानदारी से, surround.vim के साथ आपको चाबियों की एक ही संख्या के बारे में प्रेस करना होगा, इसलिए प्लगइन का उपयोग क्यों करें? - hamid
विम की ताकत इसकी कर्सर-नियंत्रण भाषा है! धन्यवाद! इसे एक स्क्रिप्ट में रिकॉर्ड करना और इसे मैक्रो बनाना आसान है। qbcw()<Esc>Pq फिर @q शब्दों को जल्दी से दोबारा करने के लिए। - Thomson Comer
@ d1str0 आप अभी भी रजिस्टर में अपना यंक ढूंढ सकते हैं "0 - Bananach


यहां उदाहरण का उपयोग कर रहे हैं surround.vim। सामान्य मोड पर, अपने कर्सर को वांछित शब्द (इस मामले में धूप) पर रखें और टाइप करें:

ysiw

फिर टाइप करें )

इसलिए:

प्रारंभिक स्ट्रिंग:

It is sunny outside.

अंतिम स्ट्रिंग:

It is (sunny) outside.

अतिरिक्त जगह: खोलने वाले माता-पिता या ब्रैकेट का उपयोग करें ysiw( माता-पिता और माता-पिता के बीच एक जगह के चारों ओर घूमने के लिए और शब्द का अंत शुरू करें)

विजुअल मोड में आसान है दबाकर दृश्य मोड दर्ज करें v। अब अगर आप टाइप करते हैं S(, शब्द रिक्त स्थान से घिरा होगा। हालांकि अगर आप बंद करने का उपयोग करते हैं ) बजाय S) यह रिक्त स्थान से घिरा नहीं होगा।

यह सभी ब्रैकेट जोड़ी परिवेश पर लागू होता है, <> [] {} ()न केवल करने के लिए ()। का व्यवहार S< ऐसा है कि यह केवल टैग संलग्नक की अपेक्षा करता है S> के रूप में घूमने में सक्षम है <>

अधिक:

प्रकार ysiw के बाद } कर्ली के लिए ऐसा करने के लिए

यहां कुछ और उदाहरण भी जोड़ सकते हैं:

  • प्रकार cs(' [सी] हेंज [ओं] के आसपास से (से '

  • cs'( 'परिवेश से () तक बदलना

  • ds(. नष्ट करना ( [ओं] urroundings पूरी तरह से

और भी अधिक:

और लिंक के माध्यम से क्लिक करने से बचाने के लिए बाकी टीपॉप के पेज का उद्धरण क्यों न दें?

// शुरू उद्धरण:

उदाहरणों के साथ व्याख्या करना सबसे आसान है।

दबाएँ cs"' के भीतर

"नमस्ते दुनिया!" इसे बदलने के लिए

'नमस्ते दुनिया!'

-

अब दबाएं cs'<q> इसे बदलने के लिए

नमस्ते दुनिया!

-

पूर्ण सर्कल जाने के लिए, दबाएं cst" लेना

"नमस्ते दुनिया!"

-

पूरी तरह से delimiters को हटाने के लिए, दबाएं ds".

नमस्ते दुनिया!

-

अब "हैलो" पर कर्सर के साथ, दबाएं ysiw] (iw एक टेक्स्ट ऑब्जेक्ट है)।

[नमस्ते दुनिया! आइए उन ब्रेसिज़ बनाएं और कुछ जगह जोड़ें (उपयोग करें}   {जगह के लिए) के बजाय: cs]{

{ नमस्ते दुनिया!

-

अब पूरी लाइन कोष्ठक में लपेटें yssb या yss)

({ नमस्ते दुनिया!)

-

मूल पाठ पर वापस जाएं: ds{ds)

नमस्ते दुनिया!

-

हैलो पर जोर दें: ysiw<em>

नमस्ते विश्व!

-

अंत में, आइए दृश्य मोड को आज़माएं। एक राजधानी दबाएं V (लाइन के लिए   दृश्य मोड) के बाद S<p class="important">

<p class="important">
  <em>Hello</em> world!
</p>

यह प्लगइन एचटीएमएल और एक्सएमएल संपादन के लिए बहुत शक्तिशाली है, जो एक जगह है जो वर्तमान में विम भूमि में कम है। (एचटीएमएल / एक्सएमएल डालने के विरोध में, जिसके लिए कई प्लगइन उपलब्ध हैं)। एक साथ टैग के जोड़े जोड़ना, बदलना और निकालना एक हवा है।

. आदेश के साथ काम करेगा ds, cs, तथा yss अगर आप स्थापित करते हैं repeat.vim


20
2017-08-28 17:49





Surround.vim


6
2017-11-09 20:10





आप उस चीज़ के लिए एक साधारण मानचित्रण को परिभाषित कर सकते हैं। यह करना चाहिए। जबकि सामान्य मोड में जेड कोष्ठक में एक शब्द को घेरने के लिए टाइप करें।

:nnoremap <leader>z viw<esc>a)<esc>hbi(<esc>lel

6
2017-11-09 21:56



बहुत बढ़िया। सरल प्रेस 2 बटन "नेता + जेड"। यह मेरा पसंदीदा जवाब है - Darren Haynes
दृश्य मोड में क्यों गुजर रहा है? सरल चाल इसे बनाने लगते हैं :nnoremap <leader>( bi(<esc>eli)<esc> या किसी को याद किया था ? बीटीडब्ल्यू बहुत अच्छा जवाब है। - Titou


क्यों उपयोग नहीं करते हैं :s// (खोज और प्रतिस्थापित करें)?

उदाहरण के लिए:

:s/sunny/\(sunny\)/

आपके पास शायद कुछ और दिमाग में है, लेकिन मैं आपके प्रश्न से यह नहीं कह सकता कि यह क्या है।


3
2017-11-09 20:10



चूंकि आप पहले से लिखे गए शब्द को दो बार टाइप करना समाप्त करते हैं, जब आप जो चाहते हैं उसे चुनना और चारों ओर कोष्ठक रखना है। - Titou


आप निम्न आदेशों का उपयोग कर सकते हैं:

cw(<C-r><C-o>")<ESC>

लाभ यह है कि आप अलग-अलग शब्दों के लिए इस क्रिया को दोहराने के लिए डॉट कमांड का उपयोग कर सकते हैं। यह कस्टम संलग्नक के लिए भी काम करता है, उदाहरण के लिए:

परिवर्तन से पहले:

word

फिर आदेश का प्रयोग करें:

cw\enquote{<C-r><C-o>"}<ESC>

अंतिम परिणाम:

\enquote{word}

1
2017-08-13 04:05





इस तरह के कुछ के लिए बाहरी प्लगइन को नियोजित करने के बजाय श्रेणियों और समूहों के साथ खेलना बेहतर होता है:

:%s~\v(\w{5}) ~(\1) ~g

एक स्थान के बाद 5 अक्षर शब्द के लिए उपरोक्त खोजें, समूह का उपयोग करके समूह को समूहित करती हैं, और समूहबद्ध मिलान के आस-पास के आसपास के कोष्ठक के साथ प्रतिस्थापित करती हैं।


0
2017-12-23 17:16