Советы по использованию Vim в качестве Java IDE? [закрытый]
Я зависим от Vim, теперь это мой де-факто способ редактирования текстовых файлов.
поскольку это в основном текстовый редактор, а не IDE, у кого-нибудь есть трюки для меня, чтобы упростить разработку приложений Java?
некоторые вопросы у меня есть:
- как вызвать задачу maven, не выходя из vi?
- могу ли я получить завершение кода?
- как подсветка синтаксиса?
что-нибудь еще (кроме «Не делай этого!») о чем я должен знать?
7 ответов
- убедитесь, что вы используете vim (vi улучшено). Linux и некоторые версии Unix symlink vi для vim.
- вы можете получить завершение кода с помощью eclim
- или вы можете получить функциональность vi в Eclipse с viPlugin
- подсветка синтаксиса отлично подходит для vim
- Vim имеет хорошую поддержку для написания маленьких макросов, таких как запуск ant/maven строит
Я был пользователем Vim в течение многих лет. Я начинаю иногда запускать Eclipse (используя плагин vi, который, должен сказать, имеет множество проблем). Основная причина заключается в том, что Java-сборки занимают довольно много времени. и они просто все медленнее и медленнее, с добавлением весьма компонентная сборка-фреймворков, как Мэйвен. Поэтому проверка ваших изменений занимает довольно много времени, что для меня часто приводит к накоплению кучу проблем компиляции, которые я должен решить позже, и фильтрация через сообщения занимает некоторое время.
когда я получаю слишком большую очередь проблем компиляции, я запускаю Eclipse. Это позволяет мне сделать торт-работу изменений. Он медленный, жестокий в использовании и не такой хороший редактор, как Vim (я использую Vim почти десять лет, поэтому это вторая натура для меня). Я нахожу для редактирования, требующие точности, чтобы исправить конкретную ошибку, нужно отрефакторить определенной логики, или что-то другое. Я просто не могу быть настолько эффективным. при редактировании в Eclipse, как я могу в Vim.
это делает ^wf на classname очень хорошая функция для навигации по большому проекту.
так или иначе, тощий, когда мне нужно добавить много нового кода, Vim, кажется, замедляет меня просто из-за времени, проведенного в погоне за проблемами компиляции и подобными вещами. Когда мне нужно найти и отредактировать определенные источники, Eclipse чувствует себя как кувалда. Я все еще жду волшебства. IDE для Vim. Я знаю о трех крупных попытках. Существует чистый плагин типа VimL IDE, который добавляет много функций, но кажется невозможным использовать. Есть эклим, с которым у меня было много проблем. И есть плагин для Eclipse, который фактически встраивает Vim. Последний кажется наиболее перспективным для реальной серьезной работы Java EE, но он, похоже, работает не очень хорошо или действительно интегрирует все функции Eclipse со встроенным Vim.
такие вещи, как добавление отсутствующего импорта при нажатии клавиши код hilight с проблемами ввода и т. д. кажется бесценным для вашей IDE при работе над большим проектом Java.
как вызвать задачу maven, не выходя из vi?
Maven ничем не отличается от любой другой команды оболочки:
вы можете :set makeprg=mvn если у вас уже есть любимый сопоставление клавиш для :make .
могу ли я получить завершение кода?
да eclim отлично, мост между эффективностью редактирования vim и Java Eclipse осознание специфики языка.
и не так велики, но удивительно полезны.
как подсветка синтаксиса?
более чем достаточно для хайлигера на основе регулярных выражений.
вы можете рассмотреть инструменты для других целей vim + java, таких как шаблоны кода (snippetEmu-фрагменты по умолчанию сосут, но настраиваемость светит), поиск обычаев и переход к объявлениям (eclim, grep, ctags), генерация геттеров и сеттеров (java_getset, или eclim), автоматический импорт (eclim). Вам также может понадобиться оболочка java для быстрых экспериментов (состоит, a.к. a. bsh ).
Я только что загрузил этот плагин Vim для разработки проектов Java Maven.
и не забудьте установить подсветку, если вы еще этого не сделали:
https://github.com/sentientmachine/erics_vim_syntax_and_color_highlighting
Я нашел следующее резюме очень полезным: http://www.techrepublic.com/article/configure-vi-for-java-application-development/5054618 — . Описание: make был для ant не maven, но в остальном хороший резюме.
Я знаю, что это довольно много лет спустя, но вот некоторые интересные плагины. Я еще не пробовал ни один из них, так что YMMV.
EDIT: О кстати, я пробовал eclim и дальше, но причина, по которой мне нравится vim, — это его легкость. Выполнение eclipse даже в безголовом режиме-это слишком много умственного подъема для меня.
EDIT2: В последнее время я использую playframework, и это, вероятно, будет работать с сборками maven:
для компиляции вы можете настроить make VIM для запуска maven или в my кейс, запустите сценарий сборки, добавьте его в файл.
«play_compile» — это просто скрипт компиляции. Он использует SBT, поэтому Maven должен работать здесь просто отлично. Даже прямой javac будет работать. Таким образом, вы можете использовать буфер quickfix VIM (: cnext,: clist: cprev, п.)
для прыжков по классам я использую ctrl-p. Ее красивые. Использовать его. Быстрее, чем eclipse в прыжках вокруг файлов.
для прыжков вокруг методов я использую tagsearch с изобильными c-тегами. Перейти к объявлениям методов с помощью ctrl -]. Вернуться через Ctrl-o. Не работает так хорошо, как eclipse, но работает достаточно хорошо.
Я использую supertab для завершения кода. Javacomplete довольно медленный, поэтому я придерживаюсь omni-complete. Опять же, не так точно, как eclipse, но его быстро и работает достаточно хорошо для меня.
использовать vim. ^ — ^(гвим, если быть точным)
У вас будет все (с некоторыми плагинами).
кстати, snippetsEmu — это хороший инструмент для кодирования с полезного (как в текст. сообщ). Вы можете использовать (или изменять) готовый пакет или сделать свой собственный.
Источник
Советы по использованию Vim в качестве Java IDE?
Я зависим от Vim, теперь это мой де-факто способ редактирования текстовых файлов.
Учитывая, что это в основном текстовый редактор, а не IDE, есть ли у меня какие-то хитрости, чтобы упростить разработку приложений Java?
У меня есть несколько вопросов:
- Как вызвать maven задачу, не выходя из vi?
- Могу ли я получить завершение кода?
- Как подсветка синтаксиса?
Что-нибудь еще (кроме «Не делай этого!»), О котором я должен знать?
7 ответов
- Убедитесь, что вы используете vim (vi улучшено). Linux и некоторые версии UNIX символической ссылки vi на vim.
- Вы можете получить завершение кода с помощью eclim
- Или вы можете получить функциональность vi в Eclipse с помощью viPlugin
- Подсветка синтаксиса великолепна с vim
- Vim имеет хорошую поддержку для написания небольших макросов, таких как запуск сборок ant / maven
Я был пользователем Vim в течение многих лет. Я начинаю обнаруживать, что время от времени запускаю Eclipse (использую плагин vi, у которого, я должен сказать, есть множество проблем). Основная причина в том, что Java-сборки занимают довольно много времени. и они становятся все медленнее и медленнее с добавлением высококомпонентных структур сборки, таких как maven. Поэтому проверка ваших изменений, как правило, занимает довольно много времени, что, по-моему, часто приводит к накоплению множества проблем компиляции, которые мне необходимо решить позже, а фильтрация сообщений фиксации занимает некоторое время.
Когда я получаю слишком много сообщений о проблемах компиляции, я запускаю Eclipse. Это позволяет мне вносить изменения. Он медленный, брутальный в использовании, и не так хорош для редактора, как Vim (я использую Vim почти десять лет, так что для меня это вторая натура). Я нахожу для точного редактирования — необходимость исправить конкретную ошибку, необходимость рефакторинга какой-то определенной логики или чего-то еще. Я просто не могу быть настолько эффективным в редактировании в Eclipse, как в Vim.
Это делает ^wf на имя класса очень хорошая функция для навигации большого проекта.
Так или иначе, то есть то, что, когда мне нужно добавить много нового кода, Vim, кажется, замедляет меня просто из-за времени, потраченного на поиски проблем компиляции и тому подобного. Когда мне нужно найти и отредактировать конкретные источники, Eclipse чувствует себя как кувалда. Я все еще жду волшебную IDE для Vim. Было три основных попытки, о которых я знаю. Существует чистый плагин типа IDE viml, который добавляет множество функций, но кажется невозможным для использования. Есть эклим, с которым у меня было много проблем. И есть плагин для Eclipse, который на самом деле встраивает Vim. Последний вариант кажется наиболее многообещающим для реальной серьезной работы Java EE, но, похоже, он не очень хорошо работает или не интегрирует все функции Eclipse со встроенным Vim.
Такие вещи, как добавление отсутствующего импорта нажатием клавиши, неправильный код с проблемами ввода и т. Д., Кажутся неоценимыми из вашей среды IDE при работе над большим проектом Java.
Источник
[java][vim] настройка
Здравствуйте!
Реально ли работать с java проектами в vim? Настраиваю тут его, поставил всякие omnicomplete, taglist, vjde и тд.
Пока что не очень радует autocomplete.
И такой вопрос: как импортировать в vim проект из netbeans?
Т.е. чтобы он он подцепил сам проект, плюс к нему импортировать вспомогательный проект (пакеты которого используются), плюс все зависимости? И можно ли потом будет а-ля Нетбинз — нажимаю, например, F5 — он собирает весь проект, запускает tomcat, и запускает мой проект?
И как с отладкой java-приложений в vim?
Мсье знает толк в извращениях. Я конечно последний раз вим использовал очень давно, но мне всегда казалось — что это текстовый редактор, пусть и навороченный, но не IDE.
Ну сам для java-проектов сейчас использую NetBeans. Вот хотелось узнать, можно ли ее заменить vim’ом или все-таки не получится сделать годную IDE?
>Т.е. чтобы он он подцепил сам проект, плюс к нему импортировать вспомогательный проект (пакеты которого используются), плюс все зависимости? И можно ли потом будет а-ля Нетбинз — нажимаю, например, F5 — он собирает весь проект, запускает tomcat, и запускает мой проект?
можно. Но только для C/C++ путь знаю.
на остальные вопросы ответ — ищите плагины.
Книжку скачал (это и сподвигло на «попробовать заменить NetBeans Vim»ом»), нужных плагинов пока не нашел (только разве что плагин Ant для сборки). Пока что даже не знаю как импортировать готовый проект из исходников — только по 1 файлу выбирать.
Реально ли работать с java проектами в vim?
У меня не получилось. Пробовал и eclim и vjde. Какое-то оно кривое все и дурное.
>даже не знаю как импортировать готовый проект из исходников — только по 1 файлу выбирать.
наверное вам нужно :mksession
> Реально ли работать с java проектами в vim?
На все вопросы такого рода ответ — никак. Вим только для редактирования файлов, всё остальное — внешними утилитами.
и далее по ссылкам.
Реально ли работать с java проектами в vim?
С хеллоувордами на 10 классов — еще можно. Больше — уже через ж.
И можно ли потом будет а-ля Нетбинз — нажимаю, например, F5 — он собирает весь проект, запускает tomcat, и запускает мой проект?
Можно сделать мэйвеновский проект и запускать его по F5.
И как с отладкой java-приложений в vim?
Но вообще все это редкостный махохизм. Чем netbeans/eclipse/idea не устраивает?
Vim становится IDE после установки плагинов? Какие плагины нужно поставить, чтобы можно было для проекта на Java:
- Открыть файл соответствующего класса (открыть файл для класса App, например)
- Построить иерархию классов, вверх и вниз
- Найти все места, где используется данный класс/метод/переменная
- Рефакторинг имени класса/метода/переменной, перемещение класса в другой пакет, экспорт внутреннего класса
- Сгенерировать геттеры/сеттеры/конструктор
- Автоматическая генерация кода, например syso+ctrl+space = System.out.println()
- Подсказки и автоматическое исправление ошибок: добавление необходимых импортов, изменение области видимости
- Отладка с перемещением по коду
- Отображение ошибок компиляции и предупреждений в редакторе
- Сравнение разных версий файла в VCS, update/commit/merge
Правда в полном объёме лично у меня это всё работает только для С/С++. Для явы не знаю. Вроде синтаксис похожий. Просто — не знаю.
ЗЫЖ с такими требованиями вам ИМХО и гуёвый не найти будет 🙂 В смысле, если удовлетворить их _полностью_. Например не просто VCS, а DVCS Mercurial & Git + просмотр, поиск, и прочее и прочее. В том числе трёхпроходовое слияние:
1. что было
2. что изменил кодер №1
3. что изменил кодер №2
Vim такое легко делает.
ЗЗЫЖ и спокойней пожалуйста, я ваш любимый IDE удолять не собираюсь 🙂
>Но вообще все это редкостный махохизм. Чем netbeans/eclipse/idea не устраивает?
неа.
Мой Vim увешаный Over9000 плагинов + маленький проектик в 20К строчек жрёт ненамного меньше гуя. Скорость достигается тем, что
1. все вещи на хоткеях, и время их набора ★★ ( 22.11.11 21:07:23 )
ненене. я имел ввиду что нетбинсы/еклипсы сжирают оперативу в значительно более ощутимой степени чем тормозят своим жаба-гуем. кеды/гном/юнити, пара браузеров с несколькими вкладками, текучий через модпхп апачик, один нетбинс и всё, нету 4гигов оперативы. но в жаба-иде всё просто и по мышетыкерски понятно, а к виму привыкать надо.
> Какие плагины нужно поставить, чтобы можно было для проекта на Java:
Открыть файл соответствующего класса (открыть файл для класса App, например)
Найти все места, где используется данный класс/метод/переменная
Рефакторинг имени класса/метода/переменной,
Для явы надо погуглить, если лень писать скрипт самому.
Автоматическая генерация кода, например syso+ctrl+space = System.out.println()
Отображение ошибок компиляции и предупреждений в редакторе
Сравнение разных версий файла в VCS, update/commit/merge
Зависит от VCS. Для нормальных, типа git, ничего не нужно, всё встроено.
Построить иерархию классов, вверх и вниз
перемещение класса в другой пакет, экспорт внутреннего класса
Подсказки и автоматическое исправление ошибок: добавление необходимых импортов, изменение области видимости
Отладка с перемещением по коду
>ненене. я имел ввиду что нетбинсы/еклипсы сжирают оперативу в значительно более ощутимой степени чем тормозят своим жаба-гуем.
ну вообще да — жабагуи память жрут. Тут я согласен.
но в жаба-иде всё просто и по мышетыкерски понятно, а к виму привыкать надо.
И тут согласен — _надо_. Ибо мышкотыкерство подходит лишь для хэлловорлдов.
Ну то что я перечислил умеют все стандартные джавовские IDE (Eclipse, Netbeans, Idea), про DVCS я и не говорил, просто VCS.
Я не с целью принизить вим и возвысить что-то другое. Просто я его использовал очень давно, и только для редактирования файлов. Но конечно, если ты пишешь на С++, то использование вима в качестве IDE уже не может рассматриваться как костыль. После плюсов не то что вим может быть IDE, но и lynx браузер, и man — читалка.
>про DVCS я и не говорил, просто VCS.
просто _мне_ не подходит.
После плюсов не то что вим может быть IDE, но и lynx браузер, и man — читалка.
ну под lynx просто сайты не оптимизированы, сравнение некорректно. А less таки неплохой и удобный пейджер. Код им читать конечно не комильфо, но маны — в самый раз 🙂
Здорово, не знал, спасибо.
А команда :h tags/:h scope найдёт и внутренний класс InnerClass лежащий внутри Class?
А можно найти все реализации метода интерфейса в иерархии классов? Или переопределения метода класса?
Перемещение внутренней переменной на уровень члена класса?
> А команда :h tags/:h scope найдёт и внутренний класс InnerClass лежащий внутри Class?
vim не занимается синтаксическим анализом текста. Всё зависит от бэкенда, типа ctags/cscope. Вопрос не к виму, вопрос к бэкэнду.
Перемещение внутренней переменной на уровень члена класса?
Для плюсов мне достаточно сделать dd на строке с объявлением переменной в методе, переключиться на хидер нажатием w и, поместив курсор клавишами j/k в нужное место, нажать p. Следующее нажатие w вернет меня в прежнее место.
Да, для переключения между хидером и файлом с классами используется плагин a.vim.
Это НЕ автоматический рефакторинг, но в реальной работе гораздо чаще нужно переместить часть строк в произвольное место или за-/рас-комментить их, чем то же таскание переменных из класса в метод и обратно.
В итоге обычные операции над строками/ блоками и быстрый формат кода нужнее, чем «автоматический рефакторинг».
Скорость чего? С гуем на современных тачках проблем нет. СКорость набора текста или выполнения комманд? Так в любой IDE любое действие вешается на хоткей. А уж как экономит время автоматический рефакторинг и манипуляции с кодом.
>СКорость набора текста или выполнения комманд? Так в любой IDE любое действие вешается на хоткей.
Что-бы вы мне там не говорили, но ^W быстрее 11и нажатий BS. И уж тем более быстрее мышки. А ломать пальцы CTRL+ALT+Стрелка влево — не дело. Ну и ещё Over9000 таких мелочей, которые складываются в недели.
А уж как экономит время автоматический рефакторинг и манипуляции с кодом.
я-бы так не сказал. Разве что для размножения китайского кода годный метод. Что можно и в VIM’е.
Что-бы вы мне там не говорили, но ^W быстрее 11и нажатий BS. И уж тем более быстрее мышки. А ломать пальцы CTRL+ALT+Стрелка влево — не дело.
я-бы так не сказал. Разве что для размножения китайского кода годный метод. Что можно и в VIM’е.
vim уже умеет обертывать куски кода try/catch/finally или if блоками? А может get/set методы явовские сгенерить или конструктор по полям или toString() автоматом? А выдернуть в пару кликов/хоткеев интерфейс из объекта? А переместить метод в потомок/наследника? Итд. Все вещи реально нужные, особенно на проекте пишущемся более чем одним человеком.
Угу. От которой я долго отучался.
vim уже умеет обертывать куски кода try/catch/finally или if блоками? А может get/set методы явовские сгенерить или конструктор по полям или toString() автоматом? А выдернуть в пару кликов/хоткеев интерфейс из объекта? А переместить метод в потомок/наследника? Итд. Все вещи реально нужные, особенно на проекте пишущемся более чем одним человеком.
Сгенерить код по шаблону может. Шаблоны можно найти/написать. Для C/C++ вроде есть. «Выдернуть что-то типа метода (строчка и потом <чё-то ещё в 9001 строк>)» тоже можно. Парные скобки находить умеет. С плагинами и всякие другие (XML/HTML теги например). Вообще говоря, редактирование — сильная сторона VIM’а, оно реально быстрее всех остальных редакторов.
И да, vim уже совсем не тот что раньше. Там много новых фич и за эти годы много разных плагинов написали. На все случаи жизни.
eclim уже советовали?
В общем, пока что я пришел в выводу, что для сложных проектов все-таки IDE NetBeans удобнее и проще использовать. А в качестве мощного текстового редактора — vim.
Источник