bamarni / symfony-console-autocomplete
Symfony Console脚本使用的Shell自动补全
v1.5.5
2022-12-21 16:40 UTC
Requires
- php: ^7.1|^8.0
- ext-simplexml: *
- symfony/console: ^2.5|^3|^4|^5|^6
- symfony/process: ^2.5|^3|^4|^5|^6
Requires (Dev)
- symfony/console: 2.8.*
This package is auto-updated.
Last update: 2024-08-24 14:23:47 UTC
README
启用基于Symfony Console(Symfony框架、Composer、PHPSpec、Behat等)工具的Shell自动补全
先决条件
- 确保全局Composer项目在您的Shell中配置正确。特别是,Composer的全局bin目录需要包含在您的路径中。有关如何操作的说明,请参阅https://getcomposer.org.cn/doc/03-cli.md#global。
- 如果您使用bash,您必须确保可编程补全函数可用。Linux发行版通常默认安装它。在Mac OS X上,您可以使用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
这将打印补全脚本的输出。根据您的OS/设置,输出应保存到特定位置。以下是一些示例
# 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 --shell=fish 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
,补全无法构建。这已在#32中报告。
解决方案是将环境变量SHELL
作为docker exec
命令的一部分提供。
docker exec -e SHELL=bash -it container bash
支持的工具
所有使用Symfony Console组件的工具都受支持。
但是,快速设置仅在入口点命名为console
或以下列表中的工具时才有效