Я использую 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 из оболочки), но мне интересно узнать, как на самом деле настроить мой редактор (так что назовите это учебным упражнением). ).
line("$")
. - person Jeremiah Willcock   schedule 11.03.2011