ctags没有索引我想要的所有单词

时间:2011-05-08 04:20:33

标签: vim ctags

我正在尝试使用ctags索引我的rails应用程序,以便vim可以自动完成。 但是,ctags没有索引所有单词,尤其是我对外部库的调用。 例如: 我有这个文件:

class MultipleChoice < ActiveRecord::Base
  has_many :options, :class_name => 'MultipleChoiceOption', :foreign_key => :parent_id, :dependent => :destroy
  accepts_nested_attributes_for :options, :allow_destroy => true

  def question
    Question.find_by_data_id_and_data_type(id, MultipleChoice.name)
  end

  def randomized_options
    (0...options.size).to_a.shuffle.map{|index| [index, options[index]]}
  end

  def realized_answer(user_answer)
    user_answer.blank? ? nil : options[user_answer.to_i].content
  end

  def answer
    options.detect{|o| o.correct}.content
  rescue => e
    HoptoadNotifier.notify(
      :error_class   => "MultipleChoice",
      :error_message => "Exception while call #answer: #{e.message}",
      :parameters    => {:multiple_choice_id => self.id}
    )
    nil
  end
end

然后ctags将索引MultipleChoice(类名),回答(方法名称)但不是HoptoadNotifier。

我正在使用ctags -R *

进行索引

有没有告诉ctags将它们全部索引?

1 个答案:

答案 0 :(得分:0)

首先,确保在rails app目录中的某个位置有HoptoadNotifier源。所以,让我们假设你的目录中有这个:

/railsapp/vendor/plugins/hoptoad_notifier/lib

这将是存储HoptoadNotifier源的地方。

然后运行以下命令:

cd /railsapp
ctags -R --tag-relative=yes

这将在railsapp / called标签中创建一个文件,并包含HoptoadNotifier模块的标签信息。

我知道这似乎或多或少是你已经完成的,所以我只能假设HoptoadNotifier源不在你的目录结构中,因为我在我的机器上重新创建它并且它工作得很好。您还可以使用“-V”运行ctags以吐出所有调试信息以及它正在执行的操作。