Есть ли способ настроить хорошее автозаполнение для Ruby в Vim? - PullRequest
9 голосов
/ 31 августа 2011

Я пытался настроить автозаполнение Vim для кода на Ruby и не увенчался успехом. Я имею в виду, что все работает, но я ожидаю, что будет доступен лучший плагин или конфигурация.

Я установил плагин rubycomplete, и он неплохо работает, но ничто по сравнению с IDE, такой как RubyMine. Это был просто глоток свежего воздуха, когда я установил его, чтобы увидеть, чего мне не хватало. Он хорошо знает синтаксис, контекст и обычно показывает только соответствующие возможные варианты.

Может быть, я просто не все правильно настроил. Невозможно было найти учебник, пост в блоге, хорошую документацию о том, как это сделать (особенно актуальную). Иногда вы просто обнаруживаете, что есть разные инструменты и настройки, и не так много объяснений, как это сделать.

Существует ли стандарт сообщества для такого типа вещей? Каковы лучшие инструменты для достижения этой цели? Любой хороший учебник, источник, подсказки о том, как это сделать?

Я продолжаю слышать, как люди говорят, что они предпочитают Vim, а не IDE, такую ​​как Rubymine, и что они могут добиться практически одинакового поведения во многих аспектах при правильной конфигурации плагина, но мой опыт не был таким же. Я действительно хочу продолжать использовать Vim, поскольку он легче и мне нравится редактор, но производительность - это самое главное, и я трачу слишком много времени на чтение постов в блоге 3-4 года назад о том, как это настроить.

Ответы [ 2 ]

2 голосов
/ 21 октября 2011

В режиме вставки вы можете нажать Ctrl + x, затем Ctrl + o (omni), чтобы получить список методов Ruby.Если вы уже набрали несколько символов, например, ea, вы получите each, each_with_index и т. Д.

В моих vimfiles есть Tab, отображенные для завершения с использованием другого слова в буфере.

Это не так хорошо, как в IDE, например, Netbeans или Rubymine, но работает достаточно хорошо.

После нажатия Ctrl + x существуют другие комбинации, которые можно использовать полностью, используя слова, строки и т. Д.

Существует также eclimd, которая использует Eclipse без головы для автоматического завершения, но мне так и не удалось понять, как заставить его работать.Установить и подключить Vim к Eclipse достаточно просто, но после этого ...

Snipmate может быть альтернативой, ea<tab> с расширением до each { |element| }.

1 голос
/ 31 августа 2011

Для большинства операций, где требуется хорошее понимание языка, я обычно нахожу, что Vim не хватает по сравнению с выделенной IDE.

Например, вы не можете автоматически реорганизовать код, используя область (изменение foo() в bar () в классе Monkey, но не в классе Ape во всем вашем проекте).

Точно так же автозаполнение не всегда разумно.Я думаю, что для C / C ++ ситуация терпима благодаря таким инструментам, как clang_complete.Но для Java, или менее популярного языка, у меня возникло ощущение, что сценарий завершения не соответствует задаче.Таким образом, вы в конечном итоге тратите много времени на работу со сценариями.Проблема в том, что для хорошего автодополнения вам нужно использовать всю мощь интерпретатора или компилятора, и, очевидно, это сделать нелегко.код, но когда ситуация требует этого, я также использую IDE рядом с Vim.

Я не знаю, какая конкретная ситуация с Ruby завершена, но я не уверен, что вы получите положительный ответ.

Я мечтаю, чтобы в каждой IDE был обязательный полный режим ввода vi.

...