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サポートを有効にする必要もなく、Cで実装されたRuby拡張機能のコンパイルも必要ないことを意味します。
追加された 著者 datentyp,

9 答え

plugin dirに移動し、次のコマンドを実行します。

rake make

必要なプラグイン拡張をコンパイルします。

97
追加された
@CoreyRothwellはその2日を作る。まあ、時々私は何度も何度もドキュメントを読む前にGoogleにする必要があります。
追加された 著者 shriek,
これは答えとしてマークする必要があります
追加された 著者 Hoang Tran,
RVMユーザーは、Vimがエラーメッセージで使用していることを示す正確なルビーバージョンを使用していることを確認します
追加された 著者 Joe Sak,
私は1時間前にこれを読んでほしいです...ありがとう!
追加された 著者 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 /"です。再度変更された場合は、 github.com/wincent で「extconf.rb」を検索することができます/ command-t/find/master と入力します。
追加された 著者 phinz,
rake make を示唆する上記のコメントは私にとってはうまくいかなかった。 CommandTをvundleと一緒にインストールしましたが、Makefileはありません。この回答に追加するには、〜/ .vim/bundle/Command-T/ruby​​/command-tに行って、ここで示唆しているコマンドを実行しなければなりませんでした。私のシステムでは、これはruby-devパッケージのインストールにも関係していました。ありがとうございますperalmq!
追加された 著者 jonthalpy,

Vim自体がリンクされているRubyと同じバージョンを使用してビルドを実行する必要があります。

RVMまたはrbenvを使用していますか?個人的には、私はrbenvとMacVimを使っていました。私はこのエラーがあったので、私はルビー1.8.7パッチ 352 を使用しようとしていた。私は ruby​​ extconf.rb を実行する前に rbenvシェルシステム を使って1.8.7パッチ 249 > make を実行すると、すべて正常に動作しました。

その後、 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を使用している場合は、必ずシステムのルビーを使用してください。これはすべてドキュメントに記載されています。

1
追加された

githubプロジェクトの指示に従っていることが確かな場合は、おそらくvimを再起動する必要があります。ターミナル。私は同じ問題を抱えていました.Vimを再起動すると、最終的にはうまくいきました!

1
追加された

同様のエラーが発生し、 ruby​​ makeconf ruby​​ extconf.rb を実行している回答の1つとして示唆されているように、

─$ 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)

ディストリビューションに yum または apt のいずれかがあるかどうかに基づいて、 ruby​​-devel または ruby​​-dev

yum install ruby-devel

または

$ apt install ruby-dev
1
追加された

結局のところ、いくつかの試行錯誤の末、このコマンドはMac OSの問題を扱うコマンドt FAQで見つかりました。私は "High Sierra 10.13.4"を実行しています:

ARCHFLAGS = -Wno-error = unused-command-line-argument-hard-error-in-futureルビextconf.rb

これは、コンパイルを正常に実行したMakefileを生成するように見えました。私はたくさんのものを試しましたが、この解決法は少しの貨物文化を感じます。

0
追加された