Забубенил новую версию vimwiki под номером 0.5. Поправил несколько не критичных ошибок, думаю, что добавил немного новых — все как обычно.
Теперь можно добавлять разные Wiki-разметки. Я пока сделал гугловскую и MediaWiki. Правда, экспорт в HTML работает только для стандартной — vimwiki, что в будущем возможно изменится.
Когда мне, в очередной раз, становится скучно — я скачиваю SP-Forth и разные Форта учебники магические. Начинаю их читать, понимаю, что погорячился и мне совсем не скучно, удаляю Форт.
Так случилось, что мне необходимо в некоторых файлах записывать дату их изменения (вот как здесь, например). До недавних пор использовал:
nmap <Leader>Id i<C-R>=strftime("%d.%m.%Y %H:%M")<CR><ESC>
nmap <Leader>id a<C-R>=strftime("%d.%m.%Y %H:%M")<CR><ESC>
vmap <Leader>id di<C-R>=strftime("%d.%m.%Y %H:%M")<CR><ESC>
Я находил старую дату — обычно где-то в самом начале файла — удалял ее и вставлял новую.
Делал так достаточно долго, хоть это было и не очень удобно. Пока не надоело:
function! LastChangeUpdate(...)
if a:0 > 0
let prefix = a:1
else
let prefix = ""
endif
let linenr = 1
while linenr <= 10
if getline(linenr)=~ "Last Change"
call setline(linenr, prefix.'Last Change: '.strftime("%d.%m.%Y %H:%M"))
break
endif
let linenr += 1
endwhile
endfunction
"" Before _vimrc is saved, update 'Last Change' time if it is exists.
autocmd! bufwritepre $MYVIMRC call LastChangeUpdate('" ')
autocmd bufwritepre *.vim call LastChangeUpdate('" ')
Функция LastChangeUpdate тупо смотрит на первые 10 строк файла. Если находит ту, в которой есть Last Change, то заменяет ее на нужное нам — Last Change: текущая дата и время. Если в параметрах функции задана строка, то она подставляется перед Last Change, чтобы оформить как комментарий, например.
Ну и автокоманды — для vimrc и для всех vim-файлов перед записью вызывается наша функция и делает описанное выше.
Как-то внезапно люди стали присылать патчи для vimwiki, что конечно радует.
Думаю сделать возможным подключение разных вики синтаксисов (уже начал). Основная засада видится в обработке «сложных» вики-ссылок. Другая засада в самом коде — там местами такое написано, что стыдно становится. Тестов я не писал — посчитал не нужными, теперь, рефакторинг, вместо чего-то не сильно напряжного, превратится в «кашмар».
Посмотрим, что получится.