Я хочу подсчитать строки в диапазоне, независимо от того, какой диапазон, но пусть это будет, скажем, визуальный блок. Какой самый короткий способ это сделать. Все, что мне приходит в голову, это что-то вроде: '<,'>s/.//n
но я не верю, что это кратчайший путь.
Так может кто-нибудь мне намекнуть? Заранее спасибо.
:call
? В вашем вопросе об этом не упоминалось.:h functions
;)getpos()
(которые могут принимать метку в качестве входных данных и возвращать позицию, включая номер строки) и немного вычитания.:perl $curbuf->Count
(возвращает количество строк)Установите опцию
showcmd
(:h 'sc'
), и вам никогда не потребуется вводить что-либо, чтобы узнать, сколько строк выбрано - сначала, поскольку я забыл, что установил эту опцию, я не понял сути вашего вопроса. ^^ 'В противном случае, если вы хотите получить это число программно, это просто:
Из функции диапазона его также можно получить с помощью
a:lastline-a:firstline+1
. (:h function-range-example
)источник
'<,'>s///n
на один символ короче. :-)Если я просто хочу узнать количество строк в визуальном выделении, я обычно просто дергаю его (ударяю
y
). В зависимости от типа выбора будет сказано: «Выдернуто 5 строк» или «Выдернуто блок из 5 строк».источник