Vim Hotkeys For Specific File

~/.vimrc

autocmd FileType java map <F5> :! javac %<cr>

More info about key mapping and external commands.


(I fail to understand the point of the dichotomy between SO and SU for such questions... Anyway:) Your question has already been answered, a few days later, on SO: ftplugins + local mappings/abbreviations/commands are the way to go.

Regarding javac call, Just use %< to obtain the filename without the extension. A first correct mapping thus becomes:

:nnoremap <buffer> <f5> :!javac %<<cr>

But prefer instead to rely on the quickfix mode with:

:setlocal makeprg=javac\ $*
:nnoremap <buffer> <f5> :make %<<cr>

I don't have any direct experience writing anything like this from scratch with Vim, but here's what you'll want to look for examples to follow.

You probably want a filetype plugin (ftplugin) for .java files:

A filetype plugin is like a global plugin, except that it sets options and defines mappings for the current buffer only. See |add-filetype-plugin| for how this type of plugin is used.

And use it with a mapleader+hotkey:

To define a mapping which uses the "mapleader" variable, the special string "" can be used. It is replaced with the string value of "mapleader". If "mapleader" is not set or empty, a backslash is used instead. ... To define a mapping which uses the "mapleader" variable, the special string "" can be used. It is replaced with the string value of "mapleader". If "mapleader" is not set or empty, a backslash is used instead.

You might have a look at the Vim JDE scripts, or this guide on configuring Vi(m) for Java development. This page has some information on using javac in Vim.