Ruby on rails 在rails.vim中,我为什么得到;E345罐';“在路径中找不到文件”;错误?

Ruby on rails 在rails.vim中,我为什么得到;E345罐';“在路径中找不到文件”;错误?,ruby-on-rails,vim,rails.vim,Ruby On Rails,Vim,Rails.vim,我一直在用vim学习Ruby/Rails。Tim Pope似乎是遍历文件的一个非常好的工具,但我一直遇到这些讨厌的“E345在路径中找不到文件”错误。我还不是vim专家,所以解决方案并不明显。此外,我已经尝试过了,但它不适用于我的问题 作为问题的一个例子。我在app/helpers/application\u helper.rb中定义了一个方法格式\u name,它在app/helpers/messages\u helper.rb中使用。在后一个文件中,我将光标放在format_name的用法上

我一直在用vim学习Ruby/Rails。Tim Pope似乎是遍历文件的一个非常好的工具,但我一直遇到这些讨厌的“E345在路径中找不到文件”错误。我还不是vim专家,所以解决方案并不明显。此外,我已经尝试过了,但它不适用于我的问题

作为问题的一个例子。我在app/helpers/application\u helper.rb中定义了一个方法格式\u name,它在app/helpers/messages\u helper.rb中使用。在后一个文件中,我将光标放在format_name的用法上,然后点击gf,我得到了那个错误。类似于[f]和[f]这样的命令的disfunction

但是,它有时也能工作。我能够从
user
转到app/models/user.rb


想法?

我认为这是rails.vim的一个限制。它不支持“查找”裸方法。支持类似的方法需要以下之一:

  • 对每个“查找”请求的所有源文件进行彻底搜索
    (在大型项目中可能会很昂贵)
  • 方法名称的“哑”索引
    (例如,大量的CTAG和
    g
    Control-];参见),或
  • 对代码进行足够聪明的解析,可以很好地猜测该方法可能在何处定义
    (这是很难做到的)
如果知道方法的位置,可以使用方法名称扩展许多导航命令:

:Rhelper application#format_name

但是,您不必输入所有这些内容。假设光标位于
format_name
上,您可能只需键入
:Rh
Tabspace
app
Tab
#
Control-R Control-W(请参阅)。

您使用的Vim版本是什么?您正在使用哪些确切的命令来提示错误(例如,当光标位于foo_栏上时“
gf
”、“
:Rfind FooBar
”等)?您希望命令从您的项目中找到哪些路径名?@Chris-请参阅修订后的问题。我不知道如何显示我的vim路径中包含哪些文件和目录,这会很有帮助。您可以(通常)使用
:set path?
检查
path
选项的值,但是
rails.vim
倾向于在其中放入大量条目,并且该命令似乎显示了一个截断的结果<代码>:echo&path应该显示整个值,尽管它可能不太方便(它有安装gems的条目,这确实可以加起来,但也意味着您可以跳转到(例如,
ActiveRecord::Base
)的源代码。这似乎很有帮助,尽管我还需要几天才能开始检查。