如何为 Sublime Text 3 设置 Ctags

How to setup Ctags for Sublime Text 3

我在 Rails 个项目上 Ruby 使用 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 文字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 不能 find/execute ctags_for_ruby 文件?

/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 编辑到 [=21= 的直接路径] 解释器 - 您可以在命令行上通过 运行 which ruby 找到它。