C'est possible, mais cela nécessitera que vous connaissiez un peu le langage de script de Vim. Vous devrez écrire une fonction Vim capable de trouver l'emplacement de la date dans la section en cours sans "échapper" à cette section, puis de modifier cette ligne. Une fois la fonction écrite, vous devrez l’attacher à un autocmd.
Par exemple, si votre fonction a été appelée, TexAutoDate()
vous pouvez l'appeler automatiquement chaque fois que vous écrivez un fichier se terminant par .tex
:
:autocmd BufWritePre *.tex :call TexAutoDate()
Malheureusement, le corps de la fonction sera assez complexe et sans en savoir plus sur la structure de votre fichier, je ne peux pas vous aider beaucoup. J'ai une fonction que j'ai écrite dans un but similaire, mais elle ne se limite pas à des sections. La fonction suivante met à jour automatiquement la ligne "Dernier changement:" d'un fichier d'aide Vim:
function HelpModifiedUpdate()
if &filetype != "help"
return
endif
let today=strftime('%Y %b %d')
" Save current cursor position:
let lnum = line('.')
let col = col('.')
if search('Last change: ', 'w')
let line1 = getline('.')
if line1 =~ today
" Restore cursor position:
call cursor(lnum, col)
return
endif
let line2 = substitute(
\line1,
\'Last change: .*',
\'Last change: ' . today,
\''
\)
call setline('.', line2)
endif
" Restore cursor position:
call cursor(lnum, col)
endfunction
Voir:
:help :autocmd
:help :function
:help eval.txt
Le dernier est vaste et vous n’aurez pas besoin de lire tout le fichier, mais il contiendra une grande partie de ce dont vous avez besoin si vous ne connaissez pas déjà le script Vim.