जवाबों:
अच्छा प्रश्न!
एक प्रस्ताव के रूप में, आप सही हैं, _विशेष रूप से उपयोगी कुंजी नहीं है।: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 पूरी लाइनों को हटाता है, आदि।
ddकी तुलना में अधिक सुविधाजनक हो सकता है d_, लेकिन ऐसा इसलिए ddहै क्योंकि सिर्फ एक मानचित्रण है d_। और यह vimscript में भी उपयोगी है।
gUU? मुझे लगता है कि इसका वास्तविक उदाहरण ढूंढना सार्थक <operator>_होगा जहां इसका उपयोग किया जाएगा।
ddकी तुलना में आसान हैd_और3yjकी तुलना में आसान है4y_।