【问题标题】:Unable to find a tab completion for Rubygem in Bash/Zsh无法在 Bash/Zsh 中找到 Rubygem 的制表符完成
【发布时间】:2009-05-23 21:38:56
【问题描述】:

我没有在 Bash/Zsh 中找到 RubyGem 的制表符完成脚本。

在哪里可以获得 Bahs/Zsh 中 RubyGem 的制表符补全脚本?

【问题讨论】:

  • 制表符补全到底是什么意思?您的意思是完成可用命令还是完成要安装的 gem 列表?
  • @Terence:我的意思是完成可用的命令。

标签: ruby rubygems tab-completion


【解决方案1】:

可执行的 RubyGem 命令安装在 /usr/bin 或 /usr/local/bin 或任何 Ruby 所在的前缀中。命令的 Tab 补全应该就像 PATH 中的任何其他可执行文件一样工作。如果它不起作用,请验证 RubyGems 安装命令的目录是否在您的 PATH 中。

目前还没有官方方法可以为这些命令的参数执行制表符补全。如果您需要通过 RubyGems 安装的命令的制表符补全,您需要自己编写和/或安装它。有关详细信息,请参阅Bash reference manual。对于您感兴趣的特定命令,可能已经有一个完成系统,因此请务必使用 google 搜索,但是通过 RubyGems 安装的大多数命令都没有为它们编写任何自动完成功能。

【讨论】:

    【解决方案2】:

    尝试: http://github.com/oggy/ruby-bash-completion 要安装它,只需将 gem 文件复制到 /etc/bash_completion.d/

    我在尝试制表时出错:

    gem install 
    

    因为我在 .gem 目录中没有一些缓存文件。所以我只是通过编辑 gem 文件来禁用它。我更改了 _gem_all_names 函数:

    function _gem_all_names {
       echo ""
    }
    

    【讨论】:

      【解决方案3】:

      github 托管的 bash 完成现在是 Ubuntu Lucid Lynx 的一部分。甜的!如果您apt-get install rubygems1.8,那么完成(命令和选项!)应该可以正常工作。

      不幸的是,安装后,它只会在看到调用gem1.8 时完成,而不是更方便的gem。如果愿意,您可以手动修复该问题,方法是扩展/etc/bash_completion.d/gem1.8 的最后一行,将gem 作为complete 名称列表的一部分。我敢肯定有一种更清洁的方法,但这很有效。

      【讨论】:

        【解决方案4】:

        这已经晚了(几年),但是由于我对似乎在网上流传的 gem 的各种完成脚本非常不满意,所以我决定(在某种程度上)基于相当不错的 @987654323 编写自己的完成脚本@完成脚本在git-sh中可用。

        https://github.com/pdkl95/rubygems-completion

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-10-18
          • 2020-10-27
          • 2015-04-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多