Esta respuesta se basa en la pb2q, pero hace que sea más extensible. Definir una función para hacer la creación, por lo que se puede utilizar para una variedad de tipos de comentario:
function UpdateModifiedTime(comment)
let savedPosition = getpos(".")
call cursor(1, 1)
let modified = a:comment . 'Modified:'
if search(modified, 'e') > 0
execute 'substitute/' . modified . '.*/' . modified . ' ' . strftime('%b %d, %Y %T') . '/'
endif
call setpos(".", savedPosition)
endfunction
(Nota: es mi práctica de utilizar las formas más largas siempre que sea posible en las secuencias de comandos Vim, si no me golfing, porque valoro la legibilidad del código y los comandos normales son arcanos).
continuación, se pueden definir autocommands como:
autocmd BufWrite *.sh,*.ksh,*.bash call UpdateModifiedTime('## ')
autocmd BufWrite *.vim call UpdateModifiedTime('" ')
autocmd BufWrite *.py call UpdateModifiedTime('')
autocmd BufWrite *.c call UpdateModifiedTime('// ')
Tenga en cuenta que he dado un carácter de comentario vacío para Python. Eso es porque tenía '''
cadenas en mi encabezado de archivo para los comentarios. Puede usar '# '
o '## '
o lo que sea que le guste.
Puede hacer algo similar con Created
.