vimを起動した時にファイルタイプを変数fに記録して
:source vimrcしたときに変数fを使ってset filetypeしたいんですがうまくいきません

syntax on
if exists("g:f")
set filetype=g:f
else
let g:f = &ft
endif

vimを開いた後に自分で:echo &ftするとステータスバーの下にvimって出力されたのですが
let g:f = &ftするタイミングでファイルタイプの種類を取れてないのですがどうやって変数にセットできますか?