Это возможно, но для этого потребуется знание языка сценариев Vim. Вам нужно будет написать функцию Vim, которая может найти местоположение даты в текущем разделе без "экранирования" этого раздела, а затем изменить эту строку. Как только функция написана, вам нужно присоединить ее к autocmd.
Например, если ваша функция называлась TexAutoDate()
вы можете вызывать ее автоматически каждый раз, когда пишете файл, заканчивающийся на .tex
таким образом:
:autocmd BufWritePre *.tex :call TexAutoDate()
К сожалению, фактическое тело функции будет довольно сложным, и, не зная больше о вашем файле, я не могу вам чем-то помочь. У меня есть функция, которую я написал для аналогичной цели, но она не ограничивается разделами. Следующая функция автоматически обновляет строку «Последнее изменение:» файла справки 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
Увидеть:
:help :autocmd
:help :function
:help eval.txt
Последний является обширным, и вам не нужно будет читать весь файл, но он будет содержать большую часть того, что вам нужно, если вы еще не знаете скрипт Vim.