laradic/symfony-console-autocomplete

Symfony Console 基础脚本的 Shell 自动补全

v1.4.0 2019-09-12 08:52 UTC

README

此分支包括 composer/xdebughandler

Travis Status Latest Stable Version Total Downloads

启用基于 Symfony Console(Symfony 框架、Composer、PHPSpec、Behat 等)的工具的 Shell 自动补全

先决条件

  • 确保您的全局 composer 项目已正确配置到您的 Shell 中。值得注意的是,composer 全局 bin 目录需要添加到您的路径中。请参阅 https://getcomposer.org.cn/doc/03-cli.md#global 了解如何进行此操作。
  • 如果您正在使用 bash,您需要确保 可编程补全函数 可用。Linux 发行版通常会默认安装它。在 Mac OSX 上,您可以使用 brew(brew install bash-completion)安装它,并在您的 .bashrc 文件的末尾添加 source $(brew --prefix)/etc/bash_completion 以启用它。

安装

使用 Composer 全局安装此工具

composer global require bamarni/symfony-console-autocomplete

快速设置

在您的 Shell 配置文件(~/.bash_profile~/.zshrc)的末尾添加以下行

eval "$(symfony-autocomplete)"

关闭/重新打开您的终端窗口,您就可以使用了!

静态设置

如果您不喜欢快速设置中的所有魔法,并希望使用更标准的设置方法,您可以为给定的工具生成一个静态的补全文件

symfony-autocomplete composer

这将打印出 Composer 的补全脚本到 stdout。输出应保存到您操作系统/设置的具体位置。以下是一些示例

# BASH - Ubuntu / Debian
symfony-autocomplete composer | sudo tee /etc/bash_completion.d/composer

# BASH - Mac OSX (with Homebrew "bash-completion")
symfony-autocomplete composer > $(brew --prefix)/etc/bash_completion.d/composer

# ZSH - Config file
symfony-autocomplete composer > ~/.composer_completion && echo "source ~/.composer_completion" >> ~/.zshrc

# FISH
symfony-autocomplete composer > ~/.config/fish/completions/composer.fish

如果您正在运行不支持自动执行 PHP 脚本的环境,那么您需要调用 PHP 和相关的脚本

symfony-autocomplete "php ./artisan"

一般提示

更新

要更新工具到新版本,请使用

composer global update bamarni/symfony-console-autocomplete

Symfony 框架补全

为了使补全运行,您不应在命令开头添加 php

app/console [TAB]

Bash 用户提示

别名支持

默认情况下,您的别名补全不会启用。如果您使用别名(例如,“c”代表“composer”,“pspec”代表“phpspec”等),您必须明确传递它们

symfony-autocomplete --aliases=c --aliases=pspec

Docker 用户提示

定义 SHELL 环境变量

如果您使用类似 docker exec -it container bash 的方式连接到您的容器,您可能会发现由于无法找到 SHELL 环境变量,补全无法构建。这已在 bamarni#32 中报告

解决方案是将 SHELL 环境变量作为 docker exec 命令的一部分提供

docker exec -e SHELL=bash -it container bash

支持的工具

所有使用 Symfony Console 组件的工具都受到支持,以下是一个非详尽的列表

  • composer
  • php-cs-fixer
  • behat
  • phpspec
  • robo
  • deployer
  • laravel 的 artisan