पिछली पंक्ति में "=" तक सामग्री को पीछे की ओर कैसे हटाएं?


9

मैं जावास्क्रिप्ट कोड का एक उदाहरण का उपयोग करता हूं:

1        var a = 1;
2        var b = |{};

कर्सर स्थिति पर है |(चरित्र "{" पर जब कर्सर आकार ब्लॉक होता है), मुझे पता चलता है कि मुझे aएक ऑब्जेक्ट सौंपा जाना चाहिए, इसलिए मैं इसे नीचे की तरह संशोधित करना चाहता हूं:

1        var a = {};

इसलिए मैं जानना चाहता हूं कि जब कर्सर "{" पर है, तो लाइन 1 पर "=" चिन्ह के बाद रिक्त होने तक "{" से पहले सभी सामग्रियों को जल्दी से कैसे हटाएं?

अन्य सामान्य संपादकों में, मैं कोड हटाने के लिए सिर्फ बैकस्पेस कुंजी दबाऊंगा। लेकिन मैं यह कैसे हासिल करने के लिए नहीं है।


आप iबैकस्पेस कुंजी को दबा सकते हैं और उपयोग कर सकते हैं । उसके लिए कोई शरीर तुम्हें गोली नहीं मारेगा। मुझे लगता है।
ईलाशिव

1
लेकिन बैकस्पेस उपरोक्त लाइन के चरित्र को नष्ट नहीं करेगा
आरोन शेन

3
@AaronShen जो आपके 'बैकस्पेस' सेटिंग पर निर्भर करता है। अगर इसमें शामिल है eolतो बैकस्पेस लाइन ब्रेक को हटा देगा । आपको startसेटिंग में भी शामिल होना होगा। (देखें :help backspace)। हालांकि इस विधि का उपयोग न करें! नीचे दिए गए जवाबों में कई और तेज़ तरीके दिए गए हैं।
रिच

जवाबों:


20

सुनिश्चित नहीं है कि अगर मैं पूरी तरह से प्रश्न को समझता हूं, लेकिन यदि आप केवल आपके पास होने तक हटाना चाहते हैं var a = {};, तो आप कर्सर की स्थिति से, उपयोग कर सकते हैंd?1Enter

dएक प्रस्ताव लेता है, और आप इसे /आगे की खोज के लिए या ?एक पिछड़ी हुई खोज के लिए एक खोज पैटर्न दे सकते हैं ।

यहाँ एक छोटा सा gif यह प्रदर्शित कर रहा है:

यहाँ छवि विवरण दर्ज करें


1
यह शायद ध्यान देने योग्य है कि आपको Enterटाइप करने के बाद हिट करने की आवश्यकता है d?1
रिच

@ जो वास्तव में धन्यवाद, मैंने उसे शामिल करने के लिए उत्तर अपडेट किया है।
अक्षय

1
वह शेल किस फ़ॉन्ट का उपयोग कर रहा है?
क्रिस बर्ट-ब्राउन

@ क्रिसबर्ट-ब्राउन: टर्मिनस
अक्षय

10

यदि आप विम (और क्लासिक vi) का उपयोग नहीं कर रहे हैं, तो आपके उदाहरण में आप कर सकते हैं vkd(या vkx)।

  • v इसे 'विज़ुअल' (चुनिंदा) मोड में डाल देगा
  • k '1' पर कर्सर रखने के लिए एक लाइन ऊपर जाएगी, उस हिस्से का चयन करें जिसे आप डिलीट करना चाहते हैं
  • dया xचयन को हटा देगा

5

हटाएं

इस विशिष्ट उदाहरण के लिए, dgkऐसा करने के सबसे तेज तरीकों में से एक है।

dआदेश, के रूप में अक्षय समझाया , एक प्रस्ताव के बाद किया जा सकता है, सभी जहां कर्सर शुरू होता है के बीच वर्ण को हटाने, और जहां गति के लिए लेता है।

अपने कोड में, आप कर्सर स्थिति और उसी कॉलम एक पंक्ति के बीच की सभी चीज़ों को हटाना चाहते हैं, इसलिए gkगति के साथ कर्सर को ऊपर की ओर ले जाना (जो कि जब ऑपरेटर के साथ उपयोग नहीं किया जाता है तो गैर-अलंकृत होता है) आपके लक्ष्य को प्राप्त करेगा।

EDIT: BobH टिप्पणियों में बताते हैं कि यह विधि केवल तभी काम करती है जब 'wrap'सेट किया जाता है। इस प्रकार, जब तक आप हमेशा सेट सेट नहीं करते हैं, आप शायद इस पृष्ठ पर अन्य उत्तरों द्वारा सुझाए गए अनुसार dvkया उपयोग करके बेहतर हैं vkd

शब्दों को पीछे की ओर हटाएं

आप यह भी उपयोग कर सकते हैं: d5bया d4B, जो क्रमशः 5 शब्द या 4 वर्ड्स को पीछे की ओर हटा देगा। ( 1;एक शब्द है, लेकिन दो नियमित शब्द हैं)।


dk पूरी तरह से मौजूदा लाइन और ऊपर की लाइन दोनों को हटा देगा
एरॉन शेन

@AaronShen नोप। कोशिश करो।
रिच

1
@ यदि आप के लिए यह काम करता है तो आपके पास एक सेटिंग है जो उस आंदोलन को हटाने में सक्षम बनाता है। मैंने अभी इसका परीक्षण किया है vim -u NONE -U NONEऔर यह दोनों पंक्तियों को हटा देता है।
विटोर

@Vitor तुम सही हो। यह पता लगाने की कोशिश की जा रही है कि कौन सी सेटिंग अभी है।
रिच

1
BTW यह gkस्पष्ट रूप से :set wrap(कुछ हद तक क्रिप्टोकरेंसी) की आवश्यकता होती है । मैं यह पता नहीं लगा सका कि यह प्रतीत होता है कि यह सभी के लिए काम कर रहा था, लेकिन मेरे लिए नहीं, जब gkइसी तरह से मदद के लिए लग रहा था कि यह काम करना चाहिए। एकमात्र सुराग यह था कि मुख्य अर्थ को gkलिपटे लाइनों के साथ करना था। एक बार जब मैंने वॉयस पर (एक तरह की आवाज) पर रैप सेट करने की कोशिश की, तो यह काम कर गया।
BobH

1

मैं अभी तक टिप्पणी नहीं कर सकता, इसलिए मुझे एक नया उत्तर देने की आवश्यकता है। d kअमीर द्वारा दी गई चाबियाँ मेरे लिए भी काम नहीं करती हैं, जब मैं nocompatible विकल्प का उपयोग कर रहा हूं। एक कारण यह भी हो सकता है कि गति kको लिनिज़ विम द्वारा माना जाता है, इस स्थिति में दोनों लाइनें हटा दी जाती हैं। से :help d:

डी {मोशन} कमांड के लिए एक अपवाद: यदि गति अलंकृत नहीं है, तो गति का प्रारंभ और अंत एक ही पंक्ति में नहीं है, और प्रारंभ से पहले केवल रिक्त स्थान हैं और गति के अंत के बाद, डिलीट हो जाता है linewise। इसका मतलब यह है कि हटाए जाने से रिक्त स्थान की रेखा भी हट जाती है, जिसकी आप उम्मीद कर सकते हैं। का प्रयोग करें | o_v | संचालक को चरित्रवान बनने के लिए बाध्य करना

यह उपाय भी दर्शाता है: dvkगति को चरित्र-वार करने के लिए मजबूर करने के लिए उपयोग करें । यह मेरे लिए चाल है।

मुझे इससे पहले o_v नहीं पता था, इसलिए यहाँ है :help o_v:

v

जब एक ऑपरेटर के बाद उपयोग किया जाता है, गति कमांड से पहले: ऑपरेटर को चरित्रवान कार्य करने के लिए मजबूर करता है, वह भी जब गति अलंकृत होती है। यदि गति अलंकृत थी, तो यह बन जाएगी | अनन्य | यदि गति पहले से ही चरित्रवान, समावेशी / अनन्य थी। इसका उपयोग एक विशेष गति को समावेशी और एक समावेशी गति को अनन्य बनाने के लिए किया जा सकता है


'नकचढ़ा' बात पूरी तरह से लाल हेरिंग थी। जब मैं परीक्षण कर रहा था तो मैंने गड़बड़ कर दी क्योंकि मैं एक बेवकूफ हूं।
रिच

हम dgk का भी उपयोग कर सकते हैं, जहाँ gk भी एक्सक्लूसिव है न कि अलसी।
MS.Kim
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.