4

Vimのオートコンプリートは、単語の1つが必要なものであることを期待して、台所の流し台を投げているようです。メンバーメソッドの最初の数文字を知っていれば大丈夫ですが、メンバーメソッドが「obj.visible」なのか「obj.is_visible」なのか思い出せない場合があります。その場合、50〜1000個のオプションが表示されます。通り抜ける。

次のコードを検討してください。

  class MyClass
    def some_method
    end

    def another_method
    end
  end

  def a_global_method(stuff)
    return stuff + " more stuff"
  end

今私がタイプすると

obj = MyClass.<c-x><c-o>

'<'で始まる50のオプションがあります。ここでは、「新規」が最適なデフォルトになります。nを入力しても、cx /conewが最初のオプションではありません。

ひどくなる:

obj = MyClass.new
obj.<c-x><c-o>

これにより、再び50のオプションが得られ、それらはすべて正当なものかもしれませんが、デフォルトで「some_method」と「another_method」にしないのはなぜですか?

しかし、待ってください、すべてのオプションが合法ではありません:

obj = MyClass.new
obj.a<c-x><c-o>

これは私に2つのオプションしか与えませんが、そのうちの1つは'a_global_method'です。したがって、少なくとも私の現在の設定では、明らかにクラスまたはモジュールが何であるかを完全に認識していません。とにかくメンバー名の半分を入力する必要がある場合は、使用したほうがよいでしょう。

そういえば、私の現在の設定の要約は次のとおりです。次の設定を持つrails.vim:

"omnifunc=rubycomplete#Complete is set by rails.vim
autocmd FileType ruby,eruby let g:rubycomplete_buffer_loading = 1
autocmd FileType ruby,eruby let g:rubycomplete_rails = 1
autocmd FileType ruby,eruby let g:rubycomplete_classes_in_global = 1
autocmd FileType ruby,eruby let g:rubycomplete_include_object = 1
autocmd FileType ruby,eruby let g:rubycomplete_include_objectspace = 1

私は12年以上忠実なvimユーザーですが、完成が私にとって実際に正しく機能したことは一度もありません。私は仕事でVisualStudioを使用しており、インテリセンスを松葉杖として頻繁に使用しています。すべてのメソッドを記憶するのに十分な頻度でRailsにコーディングしないので、少しのインテリセンスの愛が大いに役立ちます。

うまく機能するプラグインはありますか?設定が足りないだけですか?

4

1 に答える 1

1

試しましたYouCompleteMeか?

Here YouCompleteme

于 2014-01-17T02:10:09.750 に答える