【问题标题】:Symfony Console tab completionSymfony 控制台选项卡完成
【发布时间】:2014-08-12 18:48:03
【问题描述】:

我有一个基于 Symfony 控制台的 CLI 应用程序。该应用程序不使用 Symfony 框架,仅使用 Symfony 控制台组件。

当我执行时

php app/myapp

我得到了包含名称、版本、选项和注册命令的常规概述。假设我只有一个命令,叫做“displaykittens”。我想做的是

php app/myapp d <TAB>

并让它完成

php app/myapp displaykittens

正如在现代 unix 环境中所期望的那样。不幸的是,似乎没有任何选项卡完成。控制台组件本身 provides an utility that allows doing something along these lines 在命令本身中。不过,这并不能帮助我完成命令的制表符。这有可能吗?

【问题讨论】:

  • 您是否尝试过为 symfony2 控制台使用交互式 shell 模式? php app/myapp -s

标签: php symfony command-line-interface tab-completion


【解决方案1】:

我不知道普通的bash shell 是否可行。但是如果你使用zsh,你可以安装oh-my-zsh。有一个很棒的 插件 可以完全满足您的要求:Oh-My-ZSH Symfony2 plugin

【讨论】:

    【解决方案2】:

    Console 组件的Application 类可以包装在一个Shell class 中,由同一个组件提供。这提供了一些自动完成功能。

    根据 freenode 上#symfony IRC 上的人们所说,没有办法让控制台应用程序提供开箱即用的自动完成功能,因为需要对 shell 配置进行更改。

    【讨论】:

      【解决方案3】:

      你可能会喜欢这个扩展https://github.com/stecman/symfony-console-completion 它允许您设置活动命令和我们自己的建议

      【讨论】:

        【解决方案4】:

        Symfony 5.4+ 自带自动补全功能。 您可以通过bin/console completion --help 获取有关自动完成的更多信息。

        例如使用 bash,您可以将其添加到您的 ~/.bashrc

        eval "$(/var/www/app/bin/console completion bash)"
        

        官方公告:https://symfony.com/blog/new-in-symfony-5-4-console-autocompletion

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2010-09-07
          • 2013-07-11
          • 2011-06-15
          • 2015-12-09
          • 2011-10-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多