क्या "डीएपी" सब कुछ हटा देता है?


15

मैं "dd" और "d {गति}" कमांड्स से परिचित हूं, लेकिन vim की help.txt में "dap" नहीं खोज सकता। "डीएपी" सामान्य मोड में क्या करता है और क्यों? (वैकल्पिक रूप से, मैं अपने लिए इस तरह की चीज का पता कैसे लगा सकता हूं?)

जवाबों:


29

"डीएपी" वास्तव में सब कुछ नहीं हटाता है। उदाहरण के लिए, इसे अपने बफर में डालने का प्रयास करें:

1
1

2
2

3
3

फिर अपने कर्सर को '2' पर रखें और "dap" टाइप करें। यह '1' और '3' को छोड़ देगा।

ऐसा इसलिए है क्योंकि "डीएपी" एक पैराग्राफ को हटा देता है । वास्तव में, यह वास्तव में महामारी है: "(डी) ईलीट (ए) (पी) का पैराग्राफ"। आप इसे सहायता में देख सकते हैं :h ap:

                            *v_ap* *ap*
ap          "a paragraph", select [count] paragraphs (see
            |paragraph|).
            Exception: a blank line (only containing white space)
            is also a paragraph boundary.
            When used in Visual mode it is made linewise.

इसे "टेक्स्ट ऑब्जेक्ट" कहा जाता है। आप इन के बारे में नीचे पढ़ सकते हैं: :h text-objectsया आप पाठ वस्तुओं पर इस भयानक लेख को पढ़ सकते हैं

किसी भी तरह से, टेक्स्ट-ऑब्जेक्ट्स का मूल विचार यह है कि आप किसी ऑब्जेक्ट की सीमाओं को परिभाषित कर रहे हैं और फिर उस पूरे ऑब्जेक्ट पर कमांड तब भी लागू कर सकते हैं जब आप इसके बीच में हों। उदाहरण के लिए, मुझे यकीन है कि आप जानते हैं कि आप dwकिसी शब्द को हटाने के लिए उपयोग कर सकते हैं । लेकिन क्या होगा अगर आप इस परिदृश्य में हैं?

Hello world
Cursor: ^

यदि आप लिखते हैं dw, तो आपके पास अभी भी woबायीं ओर होगा। यदि आप टाइप करते हैं , तो यह शब्द के अंदरdiw हटा देगा , इसलिए अधिकांश भाग के लिए यह टाइपिंग के बराबर है ।bdw

मैं अपने लिए इस तरह की चीज का पता कैसे लगा सकता हूं?

आप मूल विचार नीचे था! मदद की जाँच करना हमेशा एक अच्छी शुरुआत होती है। इस मामले में, आप महसूस कर सकते हैं कि dएक ऑपरेटर है, इसलिए जिस सहायता की आप वास्तव में तलाश कर रहे थे, वह ऑपरेटर का तर्क था, इस मामले में ap


+1! पांडित्यपूर्ण होने के लिए: डायव पीछे की जगह छोड़ देता है, जबकि बीडीडब्ल्यू नहीं करता है। diw bde के समान ही होगा ;-) bdw के लिए लटकन वास्तव में daw है, जो प्रश्न में स्ट्रोक के समान "a" का उपयोग करता है।
M.Herzkamp

1
@ M.Herzkamp: और अभी तक diwऔर bdeअभी भी काफी समान नहीं हैं: यदि आपके कर्सर एक शब्द की शुरुआत में है। इसी तरह, यदि आपका कर्सर शब्दों के बीच की जगह पर है, तो bdwबाईं dawओर शब्द हटा देगा , जबकि दाईं ओर शब्द हटा देगा। मुझे लगता है कि मूल उत्तर "अधिकांश भाग के लिए ..." शायद सबसे अच्छा है जो हम इन समकक्षों के संदर्भ में प्राप्त करेंगे।
व्रजगिन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.