Помилка плагіна Vim Command-T: не вдалося завантажити розширення C

Я намагаюся встановити плагін Command-T.

I compiled vim following the instructions in this comment: Installing vim with ruby support (+ruby)

Отже, тепер є прапорець + ruby, але все ж, коли я намагаюся використовувати плагін, я отримую цю помилку:

command-t.vim could not load the C extension
Please see INSTALLATION and TROUBLE-SHOOTING in the help              
For more information type:    :help command-t

У мене є рубій на моїй системі:

> ruby -v
> ruby 1.8.7 (2011-06-30 patchlevel 352) [x86_64-linux]

пропозиції?

54
Ctrl + P теж добре, але він не обробляє величезні проекти так добре, як Command + T
додано Автор alex, джерело
Можливо, вам захочеться поглянути на ctrlp.vim , що в основному таке ж, як Command-T , але написано у чистому Vimscript. Це означає, що для підтримки Vim не потрібна підтримка Ruby, інакше вона не вимагає складання певного Ruby-розширення, реалізованого в C.
додано Автор datentyp, джерело

9 Відповіді

Перейдіть до плагіна dir і запустіть таку команду:

rake make

Він компілює необхідне розширення плагіна.

97
додано
@ CoryRothwell роблять це 2 дні. Jeez, іноді мені потрібно, щоб google, перш ніж переходити документацію знову і знову.
додано Автор shriek, джерело
це має бути позначено як відповідь
додано Автор Hoang Tran, джерело
Користувачі RVM переконаються, що ви використовуєте точну версію ruby, яку Vim каже, що вона використовує в повідомленні про помилку
додано Автор Joe Sak, джерело
Людина, бажаю, щоб я прочитав це годину тому ... спасибі!
додано Автор Corey Rothwell, джерело

Я побіг у ту ж помилку, але після прочитання посібника трохи ретельніше я знайшов такий корисний.

Tagged from the INSTALLATION section in https://github.com/wincent/Command-T

Потім має бути побудоване розширення C, яке можна зробити з оболонки. Якщо ви   використовувати типовий | runtimepath | то файли були встановлені всередині ~/.vim і   ви можете побудувати розширення за допомогою:

  cd ~/.vim/ruby/command-t
  ruby extconf.rb
  make
29
додано
Тепер правильним каталогом для extconf.rb є: "/command-t/ruby ​​/ command-t/ext/command-t /". Якщо він знову змінюється, ви можете знайти "extconf.rb" за адресою github.com/wincent/command-t/find/master .
додано Автор phinz, джерело
Наведений вище коментар, згідно з яким пропонується, що грабар зробити не працює для мене. Я встановив CommandT з ванделем і немае Makefile. Щоб додати до цієї відповіді, мені довелося перейти до ~/.vim/bundle/Command-T/ruby ​​/ command-t і запустити запропоновані тут команди. Для моєї системи це також передбачалося встановлювати пакет ruby-dev. Спасибі peralmq!
додано Автор jonthalpy, джерело

Ви повинні виконувати збирання за допомогою тієї самої версії Ruby, до якої Vim зв'язаний з ним.

Ви використовуєте RVM або rbenv? Особисто я використовував rbenv і MacVim. У мене була ця помилка, тому що я намагався використовувати патч ruby ​​1.8.7 352 . Я переключився на 1.8.7 патч 249 , використовуючи rbenv shell system , перш ніж запустити ruby ​​extconf.rb і зробити , тоді все працювало нормально.

Після цього ви можете повернути оболонку назад, використовуючи rbenv shell --unset .

4
додано

On debian squeeze I also had to install the json library for ruby with apt-get install libjson-ruby1.8

2
додано

Command-T вимагає складений компонент. Повідомлення про помилку означає, що ви повністю не виконали інструкції з встановлення для плагіна.

1
додано

Перегляньте інструкції з встановлення на сторінці https://github.com/wincent/Command-T Пошук на цій сторінці для заголовка "УСТАНОВКА". Ви, швидше за все, не виконували інструкції з цього офіційного README. Якщо ви використовуєте RVM, обов'язково скористайтеся системою ruby. Це все позначено в документах.

1
додано

Якщо ви впевнені, що виконуєте інструкцію з github project , можливо, вам доведеться перезапустити vim та термінал Я зіткнувся з тією ж проблемою, і коли я перезапустив Vim, він, нарешті, працював!

1
додано

Я отримав подібну помилку і спробував rake make , як це було запропоновано в одному з відповідей, який також виконує ruby ​​extconf.rb , я отримав наступну помилку

─$ rake make
/usr/bin/ruby2.3 extconf.rb
mkmf.rb can't find header files fабо ruby at /usr/lib/ruby/include/ruby.h
rake abабоted!
Command failed with status (1): [/usr/bin/ruby2.3 extconf.rb...]
/home/shreedhan/.vim/bundle/command-t/Rakefile:84:in `block (2 levels) in '
/home/shreedhan/.vim/bundle/command-t/Rakefile:83:in `chdir'
/home/shreedhan/.vim/bundle/command-t/Rakefile:83:in `block in '
Tasks: TOP => make
(See full trace by running task with --trace)

Вам слід встановити ruby-devel або ruby-dev на основі того, чи є у вашому дистрибутиві yum або apt .

yum install ruby-devel

або

$ apt install ruby-dev
1
додано

Врешті-решт, після деяких проб і помилок, я знайшов цю команду в командному чаті FAQ, який стосується проблеми Mac OS. Я біжу "High Sierra 10.13.4":

ARCHFLAGS = -Wno-error = невикористаний-командний рядок-аргумент-важко-помилка в майбутньому ruby ​​extconf.rb

Схоже, що це створює файл Makefile, який успішно складався. Проте, я спробував багато чого, і це рішення відчуває себе трохи складно.

0
додано