अंडरस्कोर कमांड _ उपयोगी क्यों है?


15

मैं थोड़ा हैरान हूं कि अंडरस्कोर कमांड क्यों _, जो कर्सर के नीचे (COUNT - 1) वें पंक्ति की शुरुआत में कूदता है, अपनी कुंजी प्राप्त करता है। जब मैं के बजाय इस का प्रयोग करेंगे +या ^?

जवाबों:


16

अच्छा प्रश्न!

एक प्रस्ताव के रूप में, आप सही हैं, _विशेष रूप से उपयोगी कुंजी नहीं है।:h _

                            *_*
_  <underscore>     [count] - 1 lines downward, on the first non-blank
            character |linewise|.

यहाँ मुख्य शब्द "अलंकृत" है। इसलिए यदि आपके लक्ष्य सिर्फ कर्सर ले जाने के लिए, तो है ^, jऔर +सब काम किया हो, और वहाँ के लिए बहुत कुछ बिंदु नहीं है _। लेकिन एक ऑपरेटर के तर्क के रूप में, _सुपर शक्तिशाली है।

बहुत सारे दोहरे कुंजी शॉर्टकट वास्तव में सिर्फ शॉर्टकट हैं _। उदाहरण के लिए,

dd -> d_
cc -> c_
yy -> y_
Y  -> y_

आदि क्योंकि यह एक अलंकृत गति है, यह मूल रूप से आपके कर्सर के शुरू होने की परवाह किए बिना पूरी लाइन का चयन करता है, जबकि ^बस आपके चरित्र से पहले गैर-रिक्त पर जाता है।

जब मुझे लगता है कि मैं vया तो Vगति से पहले या सही दबा रहा हूं, तो यह सोचकर कि मुझे लाइनवाइज बनाम ब्लॉकवाइज गतियों के बारे में सोचने में मदद मिलती है। तो मुझे लगता है d^के बराबर होने का v^dऔर मैं कल्पना d_के बराबर होने का V_dया V^d। बेशक, आप इसे गति प्रदान करने के लिए एक गति को ओवरराइड कर सकते हैं ताकि यह अलंकृत या चरित्रवान हो सके। तो dv_वास्तव में बिल्कुल के रूप में एक ही है d^या v^d, और dVwकी तरह है Vwdजो वास्तव में की तरह है d_

कारण यह है कि विशेष रूप से "काउंट -1th" लाइन इतनी है कि 1dd(जो वास्तव में है d1_) एक पूरी लाइन को हटाता है, 2dd(जो वास्तव में है d2_) 2 पूरी लाइनों को 3ddहटाता है , 3 पूरी लाइनों को हटाता है, आदि।


1
सब ठीक है, लेकिन क्या मैं वास्तव में इसका इस्तेमाल करूंगा? ddकी तुलना में आसान है d_और 3yjकी तुलना में आसान है 4y_
टूथरोट

5
@toothrot यदि आप अपना खुद का ऑपरेटर बना रहे थे और अगली n लाइनों पर काम करना चाहते थे ।
जेम्स

5
@ मुझे लगता है कि मैं थोड़ा स्पष्ट करना चाहता हूं। दिन-प्रतिदिन के संपादन में, यह वास्तव में विशेष रूप से उपयोगी नहीं है। मैंने लगभग कभी भी इसका उपयोग नहीं किया है। इसका कारण यह उपयोगी है क्योंकि यह बहुत सारे उपयोगी आदेशों की परिभाषा है। ddकी तुलना में अधिक सुविधाजनक हो सकता है d_, लेकिन ऐसा इसलिए ddहै क्योंकि सिर्फ एक मानचित्रण है d_। और यह vimscript में भी उपयोगी है।
जेम्स

9
कुछ कार्य जो "गति" पर कार्य करते हैं, उनमें अन्य शॉर्टकट नहीं हो सकते हैं। "GU_" की तरह कुछ वर्तमान लाइन पर सब कुछ ऊपर ले जाएगा, भले ही कर्सर लाइन की शुरुआत में न हो।
bmb

1
@bmb के बारे में क्या gUU? मुझे लगता है कि इसका वास्तविक उदाहरण ढूंढना सार्थक <operator>_होगा जहां इसका उपयोग किया जाएगा।
होट्सचेक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.