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にコーディングしないので、少しのインテリセンスの愛が大いに役立ちます。
うまく機能するプラグインはありますか?設定が足りないだけですか?