Pour F3, relis mes précédents messages. J'ai déjà donné deux solutions (1- gvim, 2- fichier à charger depuis le vimrc)
Pour la seconde question, sur un BufWritePre, il faut faire une recherche de la ligne REVISION, et la remplacer. (utiliser un outil dédié (cvs, svn, git, ...) étant évidemment la solution à préférer).
Voici un exemple de script que j'avais pondu pour traquer des gens qui modifiaient violemment certains fichiers sans passer par les procédures en vigueur sur un projet:
" à déposer dans ~/.vim/plugin/trace_les_vilains.vim
if &cp == 1
throw "Sorry you must launch vim and not vi"
endif
let s:cpo_save=&cpo
set cpo&vim
"------------------------------------------------------------------------
function! s:User()
if exists('$USER')
return $USER
else
" matchstr utilisé pour faire un 'chomp'
return matchstr(system('whoami'), "[^\r\n]*")
endif
endfunction
function! s:LoggueLeVilain()
" Avec :put, on fait un ajout
let ligne = "Fichier modifié par ". s:User() ." à ".strftime('%c')
if 0
0put=ligne
else
" Pour remplacer la ligne, c'est setline(), et search pour la trouver
" :h search()
" :h setline()
let ll = search( "Fichier modifié par ")
if ll > 0
call setline(ll, ligne)
else
0put=ligne
endif
endif
endfunction
aug TraquonsLesVilains
au!
" Ajouter les autres extensions à la liste
au BufWritePre *.c,*.cpp,*.h,*.pl,*.ksh call s:LoggueLeVilain()
aug END
"------------------------------------------------------------------------
let &cpo=s:cpo_save
Je te laisse adapter ce code, ce n'est pas bien compliqué.