Jest to możliwe, ale wymaga znajomości języka skryptowego Vima. Musisz napisać funkcję Vima, która może znaleźć lokalizację daty w bieżącej sekcji bez „ucieczki” z tej sekcji, a następnie zmienić tę linię. Po napisaniu funkcji musisz dołączyć ją do autocmd.
Na przykład, jeśli twoja funkcja została wywołana, TexAutoDate()
możesz wywoływać ją automatycznie za każdym razem, gdy napiszesz plik kończący się w .tex
ten sposób:
:autocmd BufWritePre *.tex :call TexAutoDate()
Niestety rzeczywista treść tej funkcji będzie dość złożona i nie wiedząc więcej o układzie plików, nie mogę ci bardzo pomóc. Mam funkcję, którą napisałem w podobnym celu, ale nie ogranicza się ona do sekcji. Następująca funkcja automatycznie aktualizuje wiersz „Ostatnia zmiana:” pliku pomocy Vima podczas zapisu:
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
Widzieć:
:help :autocmd
:help :function
:help eval.txt
Ostatni jest obszerny i nie będziesz musiał czytać całego pliku, ale będzie on zawierał wiele tego, czego potrzebujesz, jeśli nie znasz jeszcze skryptu Vima.