红宝石:
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,它也以类似的方式工作。所以看起来omni-completion不能用于真正的开发,因为它在非常简单的情况下失败了?
我错过了什么吗?可能是intellisense可以改进一些如何为Ruby / Python?
答案 0 :(得分:10)
问题是Vim不知道line
是字符串,数组还是其他类。在Vim中没有深入的语法分析。如果定义了变量或方法,Vim不知道范围等等。
这只是暗示类似的话。所以是的,在这方面,Vim比IDE更受限制。这也是为什么Eclipse可以在你输入错误时提出错误的原因,而Vim则不能。
Vim更基本:在某种程度上,一切都是文字,而不一定被视为“代码”。
所以你是对的,这是Vim限制之一。
有一些插件可以解决这些限制(omnicpp使用ctags来确定某些方法的范围)但它们通常是基于每种语言开发的,并且没有灵丹妙药。