Я использую Vim для редактирования всех программ, и у меня есть стандартный заголовок, который я использую в верхней части всех моих файлов исходного кода.У меня есть файл .vimrc, настроенный для обновления определенных полей в этом заголовке (например, Last Modified), когда я сохраняю любые изменения, используя: w
Мой вопрос заключается в том, как добавить функцию для подсчета строк кода, следуя базовому правилу, что подсчитываются только непустые строки?
Я знаю, что в открытом буфере vim я могу использовать
:%s/\n//gn
для подсчета всех строк и
:%s/\n\n//gn
для подсчета пустых строк (обычно подсчитывают, сколько раз в строке появляются две новые строки, указывающие на пустую строку).Но как мне поместить это в мой файл .vimrc?
Вот фрагмент кода из моего .vimrc, который обновляет поля заголовка:
function! LastModified()
if &modified
let save_cursor = getpos(".")
let n = min([20, line("$")])
keepjumps exe '1,' . n . 's#^\(.\{,10}Last Modified:\).*#\1' .
\ strftime(' %a %b %d, %Y %I:%M%p') . '#e'
keepjumps exe '1,' . n . 's#^\(.\{,10}Filename:\).*#\1' .
\ ' ' . @% . '#e'
keepjumps exe '1,' . n . 's#^\(.\{,10}LOC:\).*#\1' .
\ ' ' . '' . '#e'
call histdel('search', -1)
call setpos('.', save_cursor)
endif
endfun
Кроме того, я просто хотел бы добавить,Я знаю, что существует множество других способов сделать это (например, использовать wc -lines из оболочки), но мне интересно узнать, как по-настоящему настроить мой редактор (поэтому назовите это обучающим упражнением).