विम - चयनित रेंज में लाइनों की गणना


83

मैं एक सीमा में रेखाओं को गिनना चाहता हूं, चाहे वह कोई भी सीमा क्यों न हो, लेकिन उसे दृश्य ब्लॉक होने दें। इसे करने का सबसे छोटा तरीका क्या है। मेरे दिमाग में जो कुछ आता है वह कुछ इस तरह है: '<,'>s/.//n लेकिन मैं नहीं मानता कि यह सबसे छोटा तरीका है।

तो, क्या कोई मुझे संकेत दे सकता है? अग्रिम में धन्यवाद।

जवाबों:


141

दृश्य मोड में, दबाएं gC-g

विशिष्ट उत्पादन:

Selected 7 of 22 Lines; 8 of 32 Words; 201 of 491 Chars; 201 of 497 Bytes-- VISUAL LINE --


स्रोत : :he count-items(के रूप में खोज करने योग्य: :heTabTab... )


महान! इस टिप के लिए धन्यवाद, जैसे ही 10 मिनट बीत जाएंगे, मैं इसे एक उत्तर के रूप में चिह्नित करूँगा) लेकिन यह दिलचस्प है, फिर भी, वहाँ एक समारोह में है। मुझे पूरा यकीन है कि एक समारोह होना चाहिए।
शबूनक

@ शबनम: आपका क्या मतलब है "क्या कोई फंक्शन है"? क्या आपका मतलब है कि आप कुछ कर सकते हैं :call? आपके प्रश्न में ऐसा उल्लेख नहीं है।
लॉरेंस गोन्साल्व्स

अन्य अंतर्निहित कार्यों ( :h functions;) की तरह ही कार्य करें
शबूनक

1
@ शबनम तो, "हाँ", फिर। आपने उल्लेख नहीं किया कि आप अपने प्रश्न में एक समारोह चाहते थे। मुझे विश्वास नहीं है कि एक बिल्ट-इन फ़ंक्शन एक सीमा में लाइनों की संख्या की गणना करने के लिए मौजूद है, लेकिन आप दो कॉल के साथ आसानी से अपने स्वयं को बहुत आसानी से परिभाषित कर सकते हैं getpos()(जो इनपुट के रूप में एक निशान को स्वीकार कर सकते हैं और लाइन नंबर सहित स्थिति को वापस कर सकते हैं) और घटाव का एक सा।
लॉरेंस गोन्साल्वेस

1
@ शबनम: मैं जो सबसे करीब पा सकता हूं, वह है :perl $curbuf->Count(लाइनों की संख्या लौटाता है)
sehe

22

विकल्प सेट करें showcmd( :h 'sc'), और आपको कभी भी यह जानने के लिए कुछ भी टाइप करने की आवश्यकता नहीं होगी कि कितनी लाइनें चुनी गई हैं - पहली बार में, जब मैं भूल जाता हूं कि मैंने यह विकल्प सेट किया है, तो मुझे आपके सवाल का मतलब समझ नहीं आया। ^^ '

अन्यथा, यदि आप उस नंबर को प्रोग्रामेटिक रूप से प्राप्त करना चाहते हैं, तो यह बस है:

:echo line("'>") - line("'<") + 1

एक सीमा-समारोह के भीतर से, यह भी प्राप्त किया जा सकता है a:lastline-a:firstline+1। ( :h function-range-example)


8

'<,'>s///nएक चरित्र छोटा है। :-)

अगर मैं सिर्फ एक दृश्य चयन में लाइनों की संख्या जानना चाहता हूं तो मैं आमतौर पर इसे हिट (हिट y) करता हूं । यह "5 लाइनों yanked" या "ब्लॉक 5 लाइनों yanked" चयन के प्रकार पर निर्भर करेगा।


2
मैं भी आमतौर पर उस उद्देश्य के लिए चिल्ला रहा था। और आज मुझे अचानक एहसास हुआ कि यह कुछ नया करने का समय है)))
shabunc
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.