Chcę liczyć linie w zakresie, bez względu na zakres, ale niech to będzie, powiedzmy, blok wizualny. Jaki jest najkrótszy sposób to zrobić. Przychodzi mi do głowy tylko coś takiego: '<,'>s/.//n
ale nie wierzę, że to najkrótsza droga.
Czy ktoś może mi podpowiedzieć? Z góry dziękuję.
:call
? Twoje pytanie o tym nie wspominało.:h functions
;)getpos()
(które mogą zaakceptować znacznik jako dane wejściowe i zwrócić pozycję, w tym numer linii) i trochę odejmowania.:perl $curbuf->Count
(zwraca liczbę wierszy)Ustaw opcję
showcmd
(:h 'sc'
), a nigdy nie będziesz musiał niczego wpisywać, aby wiedzieć, ile linii jest zaznaczonych - na początku, ponieważ zapomniałem, że ustawiłem tę opcję, nie zrozumiałem sensu twojego pytania. ^^ 'W przeciwnym razie, jeśli chcesz uzyskać ten numer programowo, wystarczy:
Z zakresu funkcji można ją również uzyskać za pomocą
a:lastline-a:firstline+1
. (:h function-range-example
)źródło
'<,'>s///n
jest o jeden znak krótszy. :-)Jeśli chcę tylko poznać liczbę linii w wizualnej selekcji, zwykle po prostu ją szarpię (uderzam
y
). W zależności od typu zaznaczenia powie „5 wyszarpanych wierszy” lub „Blok 5 wyrwanych linii”.źródło