diff options
author | Tom Ryder <tom@sanctum.geek.nz> | 2018-07-01 16:58:37 +1200 |
---|---|---|
committer | Tom Ryder <tom@sanctum.geek.nz> | 2018-07-01 16:58:37 +1200 |
commit | 8c364ee070ca116c462997b6cfc28d963c33becd (patch) | |
tree | 9152210111e6aac14288c36f176a85f1618511c8 | |
parent | Support nested dirs in two Vim runtime subdirs (diff) | |
download | dotfiles-8c364ee070ca116c462997b6cfc28d963c33becd.tar.gz dotfiles-8c364ee070ca116c462997b6cfc28d963c33becd.zip |
Add new html/timestamp.vim ftplugin
Not sure if this one will get published--it's a bit ad-hoc in its
current state.
-rw-r--r-- | vim/after/ftplugin/html/timestamp.vim | 28 | ||||
-rw-r--r-- | vim/autoload/html/timestamp.vim | 15 |
2 files changed, 43 insertions, 0 deletions
diff --git a/vim/after/ftplugin/html/timestamp.vim b/vim/after/ftplugin/html/timestamp.vim new file mode 100644 index 00000000..29a215cd --- /dev/null +++ b/vim/after/ftplugin/html/timestamp.vim @@ -0,0 +1,28 @@ +" html/timestamp.vim: Update timestamps in HTML files on save. + +" Don't load if running compatible or too old +if &compatible || v:version < 700 + finish +endif + +" Don't load if already loaded +if exists('b:did_ftplugin_html_timestamp') + finish +endif + +" Flag as loaded +let b:did_ftplugin_html_timestamp = 1 +let b:undo_ftplugin = b:undo_ftplugin + \ . '|unlet b:did_ftplugin_html_timestamp' + +" Set up appropriate hooks +augroup html_timestamp + autocmd! + autocmd BufWritePre *.html + \ if exists('b:html_timestamp_check') + \| call html#timestamp#Update() + \|endif +augroup END +let b:undo_ftplugin = b:undo_ftplugin + \ . '|augroup html_timestamp|autocmd!|augroup END' + \ . '|augroup! html_timestamp' diff --git a/vim/autoload/html/timestamp.vim b/vim/autoload/html/timestamp.vim new file mode 100644 index 00000000..1b3ea830 --- /dev/null +++ b/vim/autoload/html/timestamp.vim @@ -0,0 +1,15 @@ +function! html#timestamp#Update() abort + if !&modified + return + endif + let l:cv = winsaveview() + call cursor(1,1) + let l:li = search('\C^\s*<em>Last updated: .\+</em>$', 'n') + if l:li + let l:date = substitute(system('date -u'), '\C\n$', '', '') + let l:line = getline(l:li) + call setline(l:li, substitute(l:line, '\C\S.*', + \ '<em>Last updated: '.l:date.'</em>', '')) + endif + call winrestview(l:cv) +endfunction |