2008-10-31 3 views
178

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

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

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

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

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

+1

Я использую netbeans широко на работе, но для моего личного сервера у себя дома ... с использованием NetBeans не работает, так как мне придется делать свою разработку на другом компьютере, а затем развертывать. Поездка в оба конца слишком длинная. – 2008-11-03 14:14:59

+0

@AdamC Входящие от Google здесь ... Как самонадеянный из командной строки geek, исходящий из python, я думаю, что барьер для входа в настройку с помощью среды разработки java * очень * повышен с помощью таких программ. Я уже должен установить JVM ... зачем нужно делать даже БОЛЬШУЮ установку, чтобы получить привет мир? Это просто общая склонность людей, исходящих от языков сценариев, будет иметь место при первом изучении Java. – DeaconDesperado 2013-04-11 19:19:09

+2

Когда я редактирую VIM. Чтобы вернуться на консоль, вы можете просто сделать ctrl + z, который поместит vim в фоновом режиме и вернет вас на консоль. Затем вы можете использовать команду fg, чтобы вернуть vim обратно на передний план. – 2013-11-21 13:14:35

ответ

68

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

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

получайте удовольствие :-)

4

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

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

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

20
  • Как мне вызвать задачу 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).

29

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

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

Также подсказка:

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

Это делает ^wf на имени класса очень хорошая возможность для навигации большого проекта.

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

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

7

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

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

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

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

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

  • Для компиляции, вы можете настроить марку VIM, чтобы запустить Maven или в моем случае, запустить сборку 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" это просто скрипт компиляции. Он использует SBT, поэтому Maven должен работать отлично. Даже прямой javac будет работать. Таким образом, вы можете использовать VIM "s QuickFix буфера (: cnext,: CList: cprev, и т.д.).

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

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

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

Смежные вопросы