Я настроил свои отображения следующим образом:
"Set up mappings for LaTeX files 
let b:myEngine=0
let g:myEngineList=["pdflatex","texexec"] "pdflatex or context
function! ToggleEngine()
  if b:myEngine == "pdflatex"
        let b:myEngine = "context"
        execute "imap <F5> :! pdflatex %;<CR>"
        execute "map ;new \begin{document}<CR><CR>\end{document}"
  else
        let b:myEngine = "pdflatex"
        execute "imap <F5> :! context %;<CR>"
        execute "map ;new \starttext<CR><CR>\stoptext"
  fi
  echo "compilation engine:" g:myEngineList[b:myEngine]
endfunction
Однако это не ведет себя так, как я ожидаю; он отказывается переназначать ключи. Изначально ключи не сопоставлены, а после сопоставления они остаются сопоставленными. Как это исправить?
Я вызываю ToggleEngine() следующим образом: nmap <silent> <F7> :call ToggleSpell()<CR>
