bamarni/symfony-console-autocomplete

Symfony Console脚本使用的Shell自动补全

v1.5.5 2022-12-21 16:40 UTC

README

GitHub CI Status GitHub Issues Build Status

PHP Version Stable Version

Total Downloads Monthly Downloads Daily Downloads Packagist Stars

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

screenshot of symfony-console-autocomplete in action: zsh autocompletion for composer (press tab two times)

先决条件

  • 确保全局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或以下列表中的工具时才有效