使用 RVM 在 vi​​m 中重新生成 ctag

发布于 2024-10-09 07:22:44 字数 357 浏览 4 评论 0原文

我的 .vimrc 中有以下代码:

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

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

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

每个项目都有不同的 $GEM_PATH,并且我也想为该路径中的 gem 生成 ctags。

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

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

I have the following code in my .vimrc:

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

This generates ctags for my current directory.

I'm using RVM, I'm working on different projects, with different ruby versions (trough RVM gemsets.

I have a different $GEM_PATH per project, and I want to generate the ctags for the gems in this path too.

How should the above line be to test if the $GEM_PATH variable is set, and processing these paths too?

Or better still how to check if I have an .rvmrc file, and generate ctags depending of the contents of this file?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

方觉久 2024-10-16 07:22:44

我使用bundler来管理gem,所以我用来

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

获取gem的标签。

I use bundler to manage gems, so I use

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

to get the tags for gems.

抹茶夏天i‖ 2024-10-16 07:22:44

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

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

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

If you're using rvm, you can use rvm gemdir. For example, this is what I'm using:

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

This will always use the gem directory in your current rvm gemset.

二智少女猫性小仙女 2024-10-16 07:22:44

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

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

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

map <silent> <Leader>rt :!bundle list --paths=true \| xargs ctags --extra=+f --exclude=.git --exclude=log -R *<CR><CR> 

Generic version for tagging all the installed gems (it takes a while):

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

If you want to just tag bundled gems (much faster):

map <silent> <Leader>rt :!bundle list --paths=true \| xargs ctags --extra=+f --exclude=.git --exclude=log -R *<CR><CR> 
吻泪 2024-10-16 07:22:44

这对我来说效果很好:

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

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

This works well for me:

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

Adding --language-force=ruby in order to reduce the size of tags file and make it clean.

别理我 2024-10-16 07:22:44

这就是我使用的:

ctags -R --exclude=.git --exclude=log * $(rvm gemdir)

That is what I use:

ctags -R --exclude=.git --exclude=log * $(rvm gemdir)
九命猫 2024-10-16 07:22:44

我不确定这是否对您的情况有帮助,因为我确实知道 mac 上有一个怪癖,要求我每次安装 vim 时都运行 sudo mv /etc/zshenv /etc/zprofile让 Rails.vim (Rtags) 充满活力地工作。有关更多信息,请参阅这篇文章:

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

I'm not sure if this will help you in your situation by I do know of a quirk on macs that require me to run sudo mv /etc/zshenv /etc/zprofile every time I install vim to get exuberant with Rails.vim (Rtags) to work. For more see this post:

$PATH variable not properly set in gvim/MacVim when it is opened from the finder

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文