Привет, коллеги! Мы уже обсуждали возможности Вим по сбору статистики по файлу: как встроенное средство, так и простые команды подсчета слов, предложений, строк и чего угодно. Давайте разовьем эту мысль и научимся подсчитывать всё, что захотим. Например, часто надо написать текст с определенным числом непробельных символов. Или посчитать русские буквы. Или предложения. Или всё это в произвольном куске текста. А ещё научимся делать это на лету и отображать статистику в строке информации. Сначала напишем функцию, которая будет получать текст и подсчитывать в нём всё, что нам надо: function! Stat(s)
let as = split(a:s,'\zs')
let symb = len(as)
let nonblank = len(filter(as, 'v:val=~"\\S"'))
let alphanum = len(filter(as, 'v:val=~"\\c[a-zа-яё0-9]"'))
let alpha = len(filter(as, 'v:val=~"\\c[a-zа-яё]"'))
let cyr = len(filter(as, 'v:val=~"\\c[а-яё]"'))
let as = split(a:s,'\zs')
let digits = len(filter(as, 'v:val=~"\\d"'))
let as = split(a:s,'\_s')
let wor