7

ルビー:

file = File.new("some.txt", "r")
lines = file.readlines

オムニコンプリーションテスト

file.readl
   ---------
   readline     <- PASSED
   readlines
   ---------

"hola".capital
   ---------
   capitalize   <- PASSED
   capitalize!
   ---------

lines.
                <-- FAILED (no suggestions)

lines[0].capital
                <-- FAILED (no suggestions)

Pythonも試しましたが、同じように機能しました。非常に単純なケースでは失敗するため、オムニコンプリーションを実際の開発に使用できないように見えますか?

私は何かが足りないのですか?Ruby / Pythonでインテリセンスを改善できるのではないでしょうか?

4

1 に答える 1

10

line問題は、Vimが文字列、配列、またはその他のクラスであるかどうかを認識しないことです。Vimには深い構文分析はありません。変数やメソッドが定義されているかどうかなど、Vimはスコープを認識していません。

似たような言葉を示唆しているだけです。そうです、この点でVimはIDEよりも制限されています。これが、入力時にEclipseがエラーを提案する可能性があり、Vimがエラーを提案できない理由でもあります。

Vimはもっと基本的なものです。ある意味では、すべてがテキストであり、必ずしも「コード」とは見なされません。

ですから、これはVimの制限の1つです。

これらの制限を回避するためのプラグインがいくつかあります(omnicppはいくつかのメソッドの範囲を決定するためにctagsを使用しています)が、それらは言語ごとに開発されることが多く、特効薬はありません。

于 2011-01-28T07:58:13.083 に答える