13

我的 .vimrc 中有以下代码:

map <Leader>rt :!ctags --extra=+f -R *<CR><CR>

这会为我的当前目录生成 ctags。

我正在使用 RVM,我正在处理不同的项目,使用不同的 ruby​​ 版本(通过 RVM gemsets.

每个项目我有一个不同的 $GEM_PATH,我也想为这个路径中的 gem 生成 ctags。

上面的行应该如何测试是否设置了 $GEM_PATH 变量,并处理这些路径?

或者更好的是如何检查我是否有一个 .rvmrc 文件,并根据该文件的内容生成 ctags?

4

6 回答 6

14

我使用捆绑器来管理宝石,所以我使用

ctags -R `bundle show rails`/../*

获取宝石的标签。

于 2010-12-27T15:08:39.240 回答
11

如果您使用的是 rvm,则可以使用rvm gemdir. 例如,这就是我正在使用的:

map <Leader>rt :!ctags --extra=+f --exclude=.git --exclude=log -R * `rvm gemdir`/gems/*<CR><CR>

这将始终使用当前 rvm gemset 中的 gem 目录。

于 2011-05-13T23:10:58.920 回答
6

用于标记所有已安装 gem 的通用版本(需要一段时间):

map <silent><Leader>rt :!ctags --extra=+f --exclude=.git --exclude=log -R * `gem environment gemdir`/gems/*<CR><CR>

如果您只想标记捆绑的宝石(更快):

map <silent> <Leader>rt :!bundle list --paths=true \| xargs ctags --extra=+f --exclude=.git --exclude=log -R *<CR><CR> 
于 2012-03-27T12:01:33.847 回答
3

这对我很有效:

map <Leader>rt :!/usr/local/bin/ctags --language-force=ruby --exclude=.git --exclude=log -R * `bundle show --paths`

添加 --language-force=ruby 以减小标签文件的大小并使其干净。

于 2012-12-24T14:58:11.900 回答
2

这就是我使用的:

ctags -R --exclude=.git --exclude=log * $(rvm gemdir)
于 2013-02-19T23:22:35.913 回答
0

我不确定这是否会对您的情况有所帮助,因为我确实知道 Mac 上的一个怪癖,sudo mv /etc/zshenv /etc/zprofile每次我安装 vim 时都需要运行才能使 Rails.vim (Rtags) 正常工作。有关更多信息,请参阅此帖子:

从 finder 打开时,$PATH 变量在 gvim/MacVim 中未正确设置

于 2012-05-20T23:51:47.243 回答