我正在使用gem-ctags和rbenv-ctags来索引我的 gems 和 ruby 库。
还使用了一些影响 Vim 查找标记文件的插件:
- vim-ruby (ruby 标准库)
- vim 捆绑程序(宝石)
- vim-fugitive (git repo)
- vim-rails (Rails 项目)
能够在索引良好的代码库中跳转真是太好了,但我发现'tags'
当我浏览标签堆栈时,Vim 的选项处理不当。
我将从一个 Rails 项目开始,发现我几乎可以跳到任何我想要的地方:在应用程序中,进入 ruby 标准库(用于与当前项目相关的 ruby 版本),或进入 gem。所以我跳进了一个 gem,但是 Vim 再也找不到那个 gem 的标签,所以我不能在里面做任何更简单的导航。
例如:我安装了 ruby 2.1.0 和 2.2.0,并且 2.2.0 设置为全局默认值。
从使用 ruby 2.1.0 的 Rails 应用程序的根目录中的空缓冲区启动 Vim。
- 执行
:verbose set tags?
节目'tags'
最后由 vim-rails 设置。 - 标签在应用程序本身、ruby 的标准库 (2.1.0) 和 gems (也是 2.1.0) 中可用。
在项目中打开一个文件。
- 它现在报告
'tags'
最后是由 vim-fugitive 设置的。 - 与上面相同的标签优点。到目前为止还好。
跳转到 gem 中的标签。
- now
'tags'
最后由 vim-bundler 设置,它只包括工作目录、当前缓冲区的目录和 ruby 2.2.0 标准库。
如何确保找到位于我正在导航的任何 gem 的根目录中的标签文件?
注意:我从 Tim Pope 的rbenv-sentience 中获得灵感,并在每个 ruby 安装的根目录中添加了一个适当的 .ruby-version 文件。'tags'
当我导航到 gem 时仍然会丢失 gems 路径,但现在它至少反映了标准库的正确版本。更近了一步...