Как помочь с контентом на Ruby или JavaScript в Vim?

Я хотел бы знать, можно ли в Vim поддерживать такие языки сценариев, как Ruby или JavaScript.

Если возможно, как я могу это сделать?

Должен ли я компилировать исходный код vim, чтобы включить параметр rubyinterp?


person breadmj    schedule 06.04.2013    source источник


Ответы (2)


То, что вы называете «помощником по содержанию» (фон Eclipse?), В Vim называется «всенаправленным завершением». Это часть более крупного семейства дополнений, называемых просто «Завершение режима вставки», и вы можете прочитать все о нем в :h ins-completion.

Однако есть два больших отличия от большинства механизмов завершения IDE:

  • Встроенный механизм завершения Vim не может быть автоматическим: вам нужно нажимать определенные сочетания клавиш, чтобы появилось меню завершения. Если вы хотите автоматическое завершение, вам понадобится плагин: NeoComplCache, SuperTab, AutoComplPop или младший YouCompleteMe. Есть и другие, поэтому попробуйте vim.org.

  • Vim не «понимает» ваш язык, как IDE. Vim - это универсальный текстовый редактор, ориентированный на программирование, но у него нет возможности анализировать ваш код и действительно понимать, что вы имеете в виду, или следовать своей области видимости или дереву зависимостей. Из-за этого завершение может быть немного нечетким. Так что не завышайте свои ожидания.

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

На обоих языках нажатие <C-x><C-o> (в режиме вставки) после method_name. должно открывать меню завершения, которое работает более или менее так же, как в других редакторах / IDE.

person romainl    schedule 06.04.2013
comment
Спасибо! Да, у меня есть фон eclipse, но я борюсь за переход на Vim в течение нескольких месяцев. - person breadmj; 07.04.2013

Да, по крайней мере, до некоторой степени.

Включение rubyinterp потребует перекомпиляции, если вы не найдете двоичный файл, в котором он есть. Дополнительную информацию по этой теме вы найдете здесь.

Поддержка кода может быть достигнута за счет использования плагинов и встроенной функции vim, называемой (омни-) завершением. Для этой работы существует множество плагинов, но один из моих любимых - Neocachecomplete. Или попробуйте один из «дистрибутивов» vim, например созданный Steve's Francia.

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

person guessimtoolate    schedule 06.04.2013
comment
Спасибо, ваш ответ тоже очень помогает, но я извиняюсь за то, что выбрал только один - ответ Ромэнла, который был быстрее примерно на 1 час. - person breadmj; 07.04.2013