laradic / symfony-console-autocomplete
Symfony Console 基础脚本的 Shell 自动补全
v1.4.0
2019-09-12 08:52 UTC
Requires
- ext-simplexml: *
- composer/xdebug-handler: ^1.1
- symfony/console: ^2.5|^3|^4
- symfony/process: ^2.5|^3|^4
Requires (Dev)
- symfony/console: 2.8.*
README
此分支包括
composer/xdebughandler
。
启用基于 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