Есть ли способ настроить хорошее автозаполнение для Ruby в Vim?

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

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

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

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

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

2 ответа

Вы можете в режиме вставки нажать 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| },

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

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

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

Тем не менее, я продолжаю использовать Vim в первую очередь потому, что мне более эффективно редактировать кусок кода, но когда ситуация требует этого, я также использую IDE рядом с Vim.

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

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

Другие вопросы по тегам