2011-08-07 11 views
46

मैं कर्सर से उसी पंक्ति पर पहले गैर-व्हाइटस्पेस चरित्र में हटाने के लिए एक कमांड की तलाश में हूं। मैंने थोड़ी देर के लिए गुगल किया है और कई संभावनाओं की कोशिश की है। कोई आनंद नहीं है। क्या कोई वहां से जानता है कि यह कैसे करें?मैं विम में गैर-व्हाइटस्पेस तक कैसे हटा सकता हूं?

उत्तर

79

अनुक्रम डब्ल्यू अगले शब्द जब तक कर्सर से सभी पात्रों को नष्ट करेगा। इसका अर्थ यह है कि यदि आप किसी शब्द के मध्य में खड़े होने पर कमांड निष्पादित करते हैं, तो वह उस शब्द के शेष और बाद के व्हाइटसाइट्स को हटा देगा। हो सकता है कि आप जो खोज रहे हैं हो या हो।

+1

यह यह करता है। यह थोड़ा सा counterintuitive है - मुझे उम्मीद है कि "वर्तमान शब्द को हटाएं, कर्सर से शुरू करें"। लेकिन यह काम करता है, यह काम करता है। धन्यवाद। – Singlestone

+0

सामान्य योजना के अनुसार, आप कर्सर के बाद दूसरे या तीसरे शब्द तक सभी वर्णों को हटाने के लिए d2w, d3w et c भी कर सकते हैं। अगर इस जवाब ने आपकी समस्या हल की है, तो कृपया इसे सही के रूप में स्वीकार करें। – richardolsson

+17

+1। सटीक होने के लिए, 'डब्ल्यू' का मतलब है "अगले शब्द की शुरुआत में जाएं", और 'd 'वर्तमान स्थिति से हटाता है जहां आंदोलन आपको ले जाता है। – orip

14

आप डीडब्ल्यू को आजमा सकते हैं। यह "शब्द" (WORD और शब्द के लिए सहायता देखें) द्वारा स्थानांतरित होगा, जो आपके प्रश्न के लिए अधिक उपयुक्त दिखता है।

dw में अपनी जरूरतों को पूरा नहीं होगा, उदाहरण के लिए:

array[1] = 5 

साधते dw जबकि a में तैनात साथ छोड़ देगा: dW का उपयोग कर में परिणाम होगा

[1] = 5 

लेकिन:

= 5 
6

इस पर ध्यान दिए बिना कि कर्सर किस पत्र पर है, daw (निमोनिक "एक शब्द हटाएं") अन्य आदेशों के साथ काम करता है, उदाहरण के लिए, caw "एक शब्द बदलें"। एफ और टी अन्य उत्कृष्ट आदेश हैं जिनका उपयोग डी के साथ किया जा सकता है। जैसे कर्सर से हटाने के लिए और उदाहरण की पहली घटना सहित पत्र "टी", डीएफटी का उपयोग करें। "टी" बरकरार रखने के लिए, dtt का उपयोग करें।

4

यहां पर कई उत्तर वास्तव में सीधे प्रश्न का समाधान नहीं करते हैं। पूछताछ करना चाहता है कि को पहलेगैर -विइटस्पेस वर्ण को कैसे हटाना है। कुछ जवाब तकनीकी रूप से काम करेंगे, लेकिन आइए देखें कि यह स्पष्ट रूप से कैसे करें।

निम्नलिखित उदाहरण यह दर्शाते हैं कि सामान्य मोड में ऐसा करने के लिए कैसे करें कर्सर की प्रारंभिक स्थिति के लिए खाते हैं।


        डब्ल्यू:   foo_           बार   →   foob और यू & # x0332; nderlined ग & # x0332 haracters कर्सर की स्थिति से संकेत मिलता है # x0332; ar

हटाएं डब्ल्यू ord आदेश, अन्य उत्तर में वर्णित है, जब हमारे कर्सर लक्ष्य से पहले स्थिति में है अगले गैर-सफ़ेद चरित्र अप करने के लिए नष्ट करने के लिए बस ठीक काम करता है।


        :   foo             ख & # x0332; ar   →   ख & # x0332; ar

स्वाभाविक रूप से, हम कर्सर से पहले पीछे की ओर पहला गैर-सफ़ेद चरित्र को नष्ट करने के लिए डब्ल्यूका प्रतिलोम की कोशिश करना चाहते चाहते हैं। लेकिन, जैसा कि ऊपर दिखाए गए, हटाएं पावती-शब्द आदेश से अधिक हम उम्मीद करते हैं — यह पिछले शब्द के रूप में अच्छी तरह से मिटा देता है हटा देता है। इस मामले के लिए, हम का उपयोग करना चाहिए:

        टी<? >:   foo             ख & # x0332; गिरफ्तारी   →   foob & # x0332; ar

... जहां <? > कर्सर से पहले पहला गैर-व्हाइटस्पेस चरित्र है। हटाएं बैक-संयुक्त राष्ट्र टी इल आदेश सब कुछ मिटा देता है अप करने के लिए लेकिन सहित नहीं चरित्र <? >, जो इस मामले में, "foo" के अंत में वर्ण o है।


        नहीं<? >:   foo_           बार   →   बम & # x0332; ar

पिछला आदेश की तरह, हम एक छोटे अक्षरों के साथ उपयोग कर सकते हैं हटाएं संयुक्त राष्ट्र नहीं इल ("टी") वर्ण आगे अगले < जब तक नष्ट करने के लिए? > चरित्र ( "बार" में, इस उदाहरण के लिए)। इस को प्राप्त होता है के रूप में एक ही परिणाम इस सवाल के प्रयोजन के लिए dडब्ल्यू


        मैंडब्ल्यू:   रंग       _       बार   →   बम & # x0332; ar

,210

हमारे कर्सर खाली स्थान के के बीच में रखा जाता है, तो हम w ord आदेश हटाएं मैं nner का उपयोग दोनों तरफ से सफेद स्थान को निकालना कर सकते हैं।


        /<? >& # x21b5;:   foo_       \n       बार   →   बम & # x0332; ar

खाली स्थान के हम निकालना चाहते लाइन ब्रेक भी शामिल है, तो हम आदेश घ ऊपर दिखाए उपयोग कर सकते हैं < से मेल खाने वाले पैटर्न जब तक हटाएं?>, जहां पैटर्न इस मामले में केवल पहला गैर-व्हाइटस्पेस चरित्र है। जैसा कि दिखाया गया है, इस आदेश को पूरा करने के लिए दर्ज करें।

जब ब्रेक के बाद लाइन की शुरुआत में पहला गैर-व्हाइटस्पेस चरित्र होता है, तो विम व्हाइटस्पेस को हटा देगा, लेकिन अगली पंक्ति पर लक्ष्य छोड़ देगा। हमें जे उपरोक्त आदेश पर जे ओन लाइनों (एक अपरकेस "जे") जोड़ने की आवश्यकता है।

        /<? >और # x21b5;जम्मू:   foo_           \n बार   →   foob & # x0332; ar