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

Можно ли установить горячую клавишу для определенных типов файлов в vim.

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

  • Отключить горячие клавиши Windows Key при использовании Virtualbox
  • Как отключить горячие клавиши в Internet Explorer 9?
  • Как быстро включить и отключить Aero в Windows 7?
  • Как предотвратить страницы, которые я посещаю, от переопределения выбранных сочетаний клавиш Firefox?
  • Как разобрать текст справа налево в Блокноте?
  • Как можно отключить Win + P в Windows 7?
  • Это возможно?

  • Backspace в Google Chrome не «назад к последней странице»?
  • Какие бесплатные онлайн-альтернативы существуют на FrontPage?
  • Что такое хороший, простой и бесплатный HTML-редактор для Windows?
  • Установите HTML-страницу в качестве обоев на Linux
  • Карта Caps-Lock для управления в Windows 8.1
  • Что такое хорошие экстракторы ссылок?
  • 3 Solutions collect form web for “Горячие клавиши Vim для конкретного файла”

    ~ / .vimrc

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

    Подробнее о сопоставлении клавиш и внешних командах .

    У меня нет прямого опыта писать ничего подобного с нуля с Vim, но вот что вам нужно искать в примерах.

    Вероятно, вам нужен плагин filetype (ftplugin) для .java-файлов:

    Плагин filetype похож на глобальный плагин, за исключением того, что он устанавливает параметры и определяет сопоставления только для текущего буфера. См. | Add-filetype-plugin | Как используется этот тип плагина.

    И используйте его с помощью клавиши mapleader + hotkey:

    Чтобы определить отображение, использующее переменную «mapleader», можно использовать специальную строку «». Он заменяется строковым значением «mapleader». Если «mapleader» не установлен или пуст, вместо этого используется обратная косая черта. … Чтобы определить отображение, использующее переменную «mapleader», можно использовать специальную строку «». Он заменяется строковым значением «mapleader». Если «mapleader» не установлен или пуст, вместо этого используется обратная косая черта.

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

    (Я не понимаю точку дихотомии между SO и SU для таких вопросов … Во всяком случае 🙂 На ваш вопрос уже был дан ответ, через несколько дней, на SO: ftplugins + локальные сопоставления / сокращения / команды – это способ идти.

    Что касается вызова javac, просто используйте% <, чтобы получить имя файла без расширения. Таким образом, первое правильное отображение:

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

    Но предпочитайте вместо этого полагаться на режим fastfix с:

     :setlocal makeprg=javac\ $* :nnoremap <buffer> <f5> :make %<<cr> 
    Давайте будем гением компьютера.