我正在尝试使用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将它们全部索引?
答案 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以吐出所有调试信息以及它正在执行的操作。