【问题标题】:How to setup Ctags for Sublime Text 3如何为 Sublime Text 3 设置 Ctags
【发布时间】:2015-03-19 23:10:03
【问题描述】:

我在 Ruby On Rails 项目中使用 Sublime Text 3。

前段时间,我使用this tutorial 设置CTags。

很好,但突然停止工作。尝试重建项目标签时出现以下错误。

/bin/sh: ctags_for_ruby: 找不到命令

这些是我的文件:

/usr/local/bin/ctags_for_ruby:

#!/usr/bin/env ruby
system "find . -name '*.rb' | ctags -f .tags -L -"

if File.exist? './Gemfile'
  require 'bundler'
  paths = Bundler.load.specs.map(&:full_gem_path).join(' ')
  system "ctags -R -f .gemtags #{paths}"
end

~/Library/Application Support/Sublime Text 3/Packages/User/CTags.sublime-settings

{
    "debug"           :  false,
    "autocomplete": false,
    "command"   :  "ctags_for_ruby",
    "filters"         :  {
        "source.python": {"type":"^i$"}
    },
    "definition_filters": {
        "source.php": {"type":"^v$"}
    },
    "definition_current_first": true,
    "show_context_menus": true,
    "extra_tag_paths" :  [ [["source.python", "windows"], "C:\\Python27\\Lib\\tags"]],
    "extra_tag_files" : [".gemtags", ".tags"]
}

$PATH 变量包括/usr/local/bin 目录。

为什么 Sublime 找不到/执行 ctags_for_ruby 文件?

【问题讨论】:

  • 你安装包控制了吗?
  • 是的,@MarcoPrins,如上所述,安装正在运行并停止
  • @rodrigo ST3 带有“转到定义”功能,在我遗漏的 ST3 中仍然使用 Ctags 是否还有其他特定优势?如果是,请详细说明。谢谢。
  • 我认为“去定义”对你的宝石一无所知@boddhisattva

标签: ruby-on-rails sublimetext sublimetext3 ctags


【解决方案1】:

/usr/local/bin 可能在你的 shell 的$PATH 中,但它没有被 Sublime 接收。要解决此问题,请编辑 ~/Library/Application Support/Sublime Text 3/Packages/User/CTags.sublime-settings 并将 "command" 设置更改为 "/usr/local/bin/ctags_for_ruby"。此外,除非您在 /usr/bin 中使用系统 Ruby,否则您可能希望将 /usr/local/bin/ctags_for_ruby 的第一行从 #/usr/bin/env ruby 编辑到 Ruby 解释器的直接路径 - 您可以通过在命令行。

【讨论】:

  • 我有一个关于 Ctags with sublime 的问题。每次构建项目时都构建标签吗?我在 Windows 7 上运行它
  • @UnderDog 我推荐asking a new question。我个人不使用 CTag。