2010-01-18 13 views
36

में कोष्ठक, कोष्ठक, या ब्रेसिज़ की एक जोड़ी निकालें विम में,:इस तरह के (रूबी में) के रूप में अगर मैं कोड है विम

anArray << [anElement] 

और मेरे कर्सर पहले [ पर है, मैं ] को हॉप कर सकते हैं % कुंजी के साथ, और के बीच d% के साथ सभी सामग्री को हटा सकता हूं, लेकिन अगर मैं [ और ] को दोनों के बीच शेष शेष सामग्री को छोड़ना चाहता हूं तो क्या होगा। विम के लिए Surround.vim प्लगइन का उपयोग करना

anArray << anElement 
+9

मैं क्या करना होगा 'XF]' देता है, लेकिन यह कोष्ठक मिलान नहीं करता है। या, पहले मैन्युअल अभिभावक-मिलान '% ', फिर' x' के बाद दो बैकिक्स के बाद,' x' के बाद। –

+0

उत्कृष्ट सवाल। मैं एक शानदार vim उपयोगकर्ता हूं, और यह समय-समय पर आता है, और मेरे पास कोई अच्छा अंतर्निहित समाधान नहीं है। – Peter

+0

आलोक का दूसरा विकल्प एक इलाज करता है। – user2023370

उत्तर

42

: दूसरे शब्दों में, क्या करने के लिए तेज तरीका है

http://www.vim.org/scripts/script.php?script_id=1697

... आप ds<delimeter> के साथ आसपास के सीमांकक समाप्त कर सकते हैं।

के माध्यम से स्थापना Vundler प्लगइन:

जोड़ें:

Plugin 'tpope/vim-surround' 

अपने .vimrc फाइल करने के लिए और चलाएँ: PluginInstall

+0

शायद यह सिर्फ मुझे है, लेकिन मैं प्लगइन के साथ कुछ भी नहीं कर सकता। यह बहुत जटिल और counterintuitive है। – I159

42

ma%x`ax (रजिस्टर a में निशान की स्थिति, मिलान करने के लिए जाना अभिभावक, चार हटाएं, a पर निशान डालें, चार हटाएं)।

संपादित करें:

%x``x एक ही बात (धन्यवाद टिप के लिए आलोक को)

+14

जैसा कि मैंने अपनी मुख्य टिप्पणी में कहा था, आपको मैन्युअल चिह्न की आवश्यकता नहीं है: आप दो बैकटिक्स द्वारा अंतिम स्थिति में जा सकते हैं। तो% x''x तेज है। –

+0

यह वही है जो मैं कर रहा हूं, लेकिन यह एक संपादक के लिए बहुत ही महत्वपूर्ण प्रेस है जो बहुत महत्वपूर्ण-प्रेस-सक्षम होना चाहिए। – Josh

+4

मुझे '%% x''x' बेहतर पसंद है क्योंकि आप माता-पिता के अंदर कहीं भी हो सकते हैं। –

2

अन्य उत्तर ठीक से काम करता है, तो आप एक समय में सीमांकक एक पंक्ति को हटाना चाहते है।

आप एक समारोह निकालना चाहते हैं तो दूसरी तरफ है और यह पूरी फ़ाइल उपयोग से सीमांकक बताया गया है:

:%s/function(\(.*\))/\1/g 

जो फ़ाइल में हर जगह arguments साथ function(arguments) बदल देता है।

4

आप निशान पंक्ति का या% का उपयोग कर के साथ पहली बार चार की ओर इशारा करते के साथ कोई समस्या है तो ...

di[vhp 

रूप में अच्छी तरह से काम करता है ... यह, [] कोष्ठक मिलान जब कर्सर है हटा देता है कहीं भी अंदर। '[' '{' या '(' द्वारा प्रतिस्थापित किया जा सकता है।

26

एक पाठ में निर्मित विम (:help text-objects देखें) में वस्तुओं का लाभ ले सकते। वांछित संपादित निम्नलिखित के अनुक्रम के रूप में कहा जा सकता है तीन कार्यों।

  1. कट वर्ग कोष्ठकों में पाठ।

    di[ 
    
  2. करें (खाली) वर्ग कोष्ठक।

    va[ 
    
  3. उन पर कट टेक्स्ट पेस्ट करें।

    p 
    

कुल मिलाकर यह

di[va[p 
+2

ऐसा करने के लिए एक गैर-प्लगइन तरीका प्रदर्शित करने के लिए धन्यवाद! हम में से उन लोगों के लिए बढ़िया है जो एम्बेडेड सिस्टम पर काम कर रहे हैं। – ijustlovemath

संबंधित मुद्दे