@Heptite está certo de que você está apenas curando os sintomas com a toggling, mas de qualquer forma, aqui está como você mudaria isso:
:nnoremap <F12> :let &mouse=(empty(&mouse) ? 'a' : '')<CR>
- Observação: você deve usar
:noremap
; torna o mapeamento imune ao remapeamento e à recursão. - Nota: Para opções simples de ligar / desligar booleano, você pode usar
:set inv{optionname}
.