Советы по использованию Vim как Java IDE?

Я зависим от Vim, теперь это мой де-факто способ редактирования текстовых файлов.

Будучи тем, что в основном текстовый редактор, а не IDE, есть ли у кого-нибудь уловки для меня, чтобы упростить разработку Java-приложений?

Некоторые вопросы, которые у меня есть:

  • Как мне вызвать задачу maven, не выходя из vi?
  • Могу ли я получить завершение кода?
  • Как подсветка синтаксиса?

Что-нибудь еще (кроме "Не делай этого!" ), о котором я должен знать?

Ответ 1

Некоторые советы:

  • Убедитесь, что вы используете vim (vi улучшен). Linux и некоторые версии символической ссылки UNIX vi на vim.
  • Вы можете получить завершение кода с помощью eclim
  • Или вы можете получить vi функциональность в Eclipse с viPlugin
  • Выделение синтаксиса отлично работает с vim
  • Vim имеет хорошую поддержку для написания небольших макросов, таких как запуск ant/maven builds

Удачи: -)

Ответ 2

Я уже несколько лет являюсь пользователем Vim. Я начинаю иногда запускать Eclipse (используя плагин vi, который, я должен сказать, имеет множество проблем). Основная причина заключается в том, что Java-сборки занимают довольно много времени... и они просто становятся все медленнее и медленнее с добавлением высококомпонентных структур построения, таких как maven. Таким образом, проверка ваших изменений имеет тенденцию занимать довольно много времени, что для меня, как представляется, часто приводит к сложению множества проблем компиляции, которые я должен решить позже, и фильтрация через сообщения фиксации занимает некоторое время.

Когда я становлюсь слишком большим для очереди компиляции, я запускаю Eclipse. Это позволяет мне делать торт из-за изменений. Он медленный, жестокий в использовании и не такой приятный, как редактор Vim (я использую Vim уже почти десять лет, поэтому для меня второй характер). Я нахожу для точного редактирования, нужно исправить конкретную ошибку, нужно реорганизовать какой-то определенный бит логики или что-то еще... Я просто не могу быть столь же эффективным при редактировании в Eclipse, как я могу в Vim.

Также совет:

:set path=**
:chdir your/project/root

Это делает ^wf для classname очень приятной функцией для навигации по большому проекту.

Так или иначе, тощий, когда мне нужно добавить много нового кода, Vim, кажется, замедляет меня просто из-за времени, потраченного на то, чтобы преследовать проблемы компиляции и подобные вещи. Однако, когда мне нужно найти и отредактировать определенные источники, Eclipse чувствует себя как кувалда. Я все еще жду волшебную IDE для Vim. Я знаю о трех крупных попытках. Там есть чистый viml IDE-тип плагина, который добавляет много функций, но кажется невозможным использовать. Там eclim, с которым у меня были проблемы. И есть плагин для Eclipse, который фактически встраивает Vim. Последний выглядит наиболее перспективным для реальной серьезной работы Java EE, но, похоже, он не работает очень хорошо или действительно не интегрирует все функции Eclipse со встроенным Vim.

Такие вещи, как добавление недостающего импорта с нажатием клавиши, код hilight с проблемами ввода и т.д., кажется неоценимым из вашей среды разработки при работе над большим проектом Java.

Ответ 3

  • Как мне вызвать задачу maven, не выходя из vi?

    Maven ничем не отличается от любой другой команды оболочки:

    :!mvn

    Вы можете :set makeprg=mvn, если у вас уже есть отображение избранных клавиш для :make.

  • Могу ли я получить завершение кода?

    Да, eclim отлично, мост между эффективностью редактирования vim и осознанием языка Java Eclipse.

    <C-n> и <C-p> не очень велики, но удивительно полезны.

  • Как подсветка синтаксиса?

    Более чем достаточно для высокоуровневого регулярного выражения.

Возможно, вам захочется рассмотреть инструменты для других целей vim + java, например, шаблоны кода (snippetEmu — по умолчанию отскакивают сокеты, но настраивается светимость), поиск и использование деклараций (eclim, grep, ctags), создание геттеров и сеттеров (java_getset или eclim), автоматический импорт (eclim). Вам также может понадобиться оболочка java для быстрых экспериментов (BeanShell, a.k.a. bsh).

Ответ 6

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

https://github.com/mikelue/vim-maven-plugin

https://github.com/vim-scripts/maven-ide

EDIT: О, BTW, я пробовал eclim и дальше, но причина, по которой мне нравится vim, - это его легкость. Выполнение затмения даже в безголовом режиме - это слишком много умственного подъема для меня.

EDIT2: В последнее время я использую playframework, и это, вероятно, будет работать с сборками maven:

  • Для компиляции вы можете настроить VIM make для запуска maven или моего case, запустите конструкцию script, tee, чтобы файл.

    autocmd Filetype java setl makeprg=play_compile
    autocmd Filetype java setl efm=%A\ %#[error]\ %f:%l:\ %m,%-Z\ %#[error]\ %p^,%-C%.%#
    

"play_compile" - это всего лишь компиляция script. Он использует SBT, поэтому Maven должен работать отлично. Даже прямой javac будет работать. Таким образом, вы можете использовать буфер быстрого исправления VIM (: cnext,: clist: cprev и т.д.).

  • Для прыжков по классам я использую ctrl-p. Оно прекрасно. Используй это. Быстрее, чем затмение в прыжке с файлами.

  • Для того, чтобы прыгать вокруг методов, я использую tagearch с буйными c-тегами. Перейдите в объявления методов с помощью ctrl-]. Вернитесь, используя Ctrl-O. Не работает так хорошо, как eclipse, но он работает достаточно хорошо.

  • Я использую supertab для завершения кода. Javacomplete довольно медленный, поэтому я придерживаюсь omni-complete. Опять же, не так точно, как затмение, но его быстро и работает достаточно хорошо для меня.

Ответ 7

Используйте vim. ^ - ^ (gVim, если быть точным)

У вас будет все (с некоторыми плагинами).

Btw, snippetsEmu - отличный инструмент для кодирования с полезными фрагментами (например, в TextMate). Вы можете использовать (или модифицировать) готовый пакет или сделать свой собственный.