Alterar o mapeamento de F5 com base no tipo de arquivo específico

O mapeamento atual do meuF5 chave é:

imap <F5> <esc>:w\|!python %<CR>

Agora eu quero que, se eu estou editando qualquer arquivo python(será melhor se também reconhecer arquivos diferentes do padrão.py formato como.pyd etc) então esse mapeamento funciona como está. Mas, se eu editar um arquivo Java, ele será mapeado para algo como:

imap <F5> <esc>:w\|!javac %<CR>

E quando estou editando qualquer.c ou.cpp arquivar entãoF5 é mapeado para isso:

imap <F5> <esc>:w\|!make %<CR>

Não tenho ideia de como proceder.

questionAnswers(2)

yourAnswerToTheQuestion