Відповіді:
~ / .vimrc
autocmd FileType java map <F5> :! javac %<cr>
Детальніше про відображення клавіш та зовнішні команди .
autocmd FileType java map <F5> :exe '! javac ' . expand('%:r')<CR>
See :help expand()
.
(Я не розумію сенсу дихотомії між SO та SU щодо таких питань ... У будь-якому разі :) На ваше питання вже відповіли через кілька днів на SO: ftplugins + локальні відображення / скорочення / команди - це шлях до йти.
Щодо дзвінка javac, просто використовуйте% <, щоб отримати ім'я файлу без розширення. Першим правильним відображенням таким чином стає:
:nnoremap <buffer> <f5> :!javac %<<cr>
Але вважайте за краще покладатися на режим швидкого виправлення за допомогою:
:setlocal makeprg=javac\ $*
:nnoremap <buffer> <f5> :make %<<cr>
Я не маю прямого досвіду писати щось подібне з нуля з Vim, але ось що ви хочете шукати для прикладу.
Напевно, ви хочете, щоб плагін файлів (ftplugin) для файлів .java:
Плагін файлового типу схожий на глобальний плагін, за винятком того, що він встановлює параметри та визначає відображення лише для поточного буфера. Див. | Add-filetype-plugin | про те, як використовується цей тип плагіна.
І використовуйте його за допомогою Mapleader + гарячої клавіші:
Для визначення відображення, яке використовує змінну "mapleader", може використовуватися спеціальний рядок "". Він замінюється значенням рядка "mapleader". Якщо "Mapleader" не встановлений або порожній, замість цього використовується зворотна косою рисою. ... Для визначення відображення, яке використовує змінну "mapleader", може використовуватися спеціальний рядок "". Він замінюється значенням рядка "mapleader". Якщо "Mapleader" не встановлений або порожній, замість цього використовується зворотна косою рисою.
Ви можете ознайомитись із сценаріями Vim JDE або цим посібником із налаштування Vi (m) для розробки Java. На цій сторінці є деяка інформація про використання javac у Vim.