Гарячі клавіші Vim для конкретного файлу


4

Чи можна встановити гарячу клавішу для конкретних типів файлів у vim.

Наприклад, якщо я редагую файл .java, я б хотів, щоб vim запустив javac .java, коли натискаю 5.

Чи можливо це?

Відповіді:


8

~ / .vimrc

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

Детальніше про відображення клавіш та зовнішні команди .


чи можливо видалити розширення файлу? так що я можу робити як java% (видалити .java)?
vonhogen

Я сумніваюся в цьому, але ви можете зробити ярлик до сценарію, який зніме розширення та виконає javac на результат.
Андрейс Кайніков

2
@karmic: для отримання додаткової інформації використовуйте щось на кшталт autocmd FileType java map <F5> :exe '! javac ' . expand('%:r')<CR> See :help expand().
Ал.

4

(Я не розумію сенсу дихотомії між SO та SU щодо таких питань ... У будь-якому разі :) На ваше питання вже відповіли через кілька днів на SO: ftplugins + локальні відображення / скорочення / команди - це шлях до йти.

Щодо дзвінка javac, просто використовуйте% <, щоб отримати ім'я файлу без розширення. Першим правильним відображенням таким чином стає:

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

Але вважайте за краще покладатися на режим швидкого виправлення за допомогою:

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

3

Я не маю прямого досвіду писати щось подібне з нуля з Vim, але ось що ви хочете шукати для прикладу.

Напевно, ви хочете, щоб плагін файлів (ftplugin) для файлів .java:

Плагін файлового типу схожий на глобальний плагін, за винятком того, що він встановлює параметри та визначає відображення лише для поточного буфера. Див. | Add-filetype-plugin | про те, як використовується цей тип плагіна.

І використовуйте його за допомогою Mapleader + гарячої клавіші:

Для визначення відображення, яке використовує змінну "mapleader", може використовуватися спеціальний рядок "". Він замінюється значенням рядка "mapleader". Якщо "Mapleader" не встановлений або порожній, замість цього використовується зворотна косою рисою. ... Для визначення відображення, яке використовує змінну "mapleader", може використовуватися спеціальний рядок "". Він замінюється значенням рядка "mapleader". Якщо "Mapleader" не встановлений або порожній, замість цього використовується зворотна косою рисою.

Ви можете ознайомитись із сценаріями Vim JDE або цим посібником із налаштування Vi (m) для розробки Java. На цій сторінці є деяка інформація про використання javac у Vim.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.