HiroKws/ArtisanBashCompletion

语言: Shell

git: https://github.com/HiroKws/ArtisanBashCompletion

使用bash完成Laravel Artisan命令。
Completion for Laravel Artisan commands with bash.
README.md (中文)

Artisan-Bash完成

用于完成代码的Laravel Artisan命令行工具的Bash完成代码。此外,您可以使用Artisan命令在Laravel项目下的任何文件夹。

Laravel Artisan for Bash它是命令行工具的补充脚本。作为一个附加功能,在Laravel项目目录下的任何目录中, 允许执行Artisan命令。

现在为5.1 LTS。 它与5.1 LTS兼容。

Require(动作要件)

这个完成需要一些linux工具,如tr,find,xargs,sort,uniq和php。特别注意gawk。如果这对您的环境不起作用,请检查是否安装了gawk。几乎将linux发行版安装为'awk'。但有些分发没有。在您的终端中输入'gawk --help'进行简单检查。

还需要bash完成包。

这个补充程序使用基本的Linux工具(tr,find,xargs,sort,uniq,php)。我特别注意的是gawk。如果它不起作用,请先检查是否安装了gawk。对于大多数发行版,gawk安装为'awk'。但是,有些发行版仅安装原始awk。在终端上检查gawk --help很容易。

当然,我们还需要一个bash complition包。

安装(安装)

首先,在.bashrc中为artisan命令定义别名,如下所示:

alias artisan='php "$(_get_artisan_dir)/artisan" --ansi'

接下来,如果您没有安装“bash-completion”软件包,请安装它。

然后,只需将artisan.sh中的代码复制到.bashrc或.bash_profile或其他内容中即可。这是最简单的方法。

或者,放置包含完成代码的目录,例如/ usr / share / bash-completion /或/etc/bash_completion.d/。 (我从不尝试这种方式。但也许它也有效。:P)

概念:如果你为'php artisan'使用alter别名,那么只需更改最后一行就可以组合别名和bash函数。

complete -F _artisan_module Your-Alias-Name-Here

首先,请定义一个别名。它通常在.bashrc或.bash_profile中定义。

alias artisan='php "$(_get_artisan_dir)/artisan" --ansi'

如果你还没有安装“bash - completion”,请完成很多linux命令,请先安装。

安装此软件包的一种简单方法是将artisan.sh的代码复制到.bashrc或.bash_profile中。或者,请将文件复制到/ usr / share / bash - completion /或/ etc / bash_completion.d /。我没试过,但它可能会奏效。 :P

注意:如果您想使用工匠以外的别名,请更改最后一个代码。

complete -F _artisan_module <お好きな別名をここに指定します>

Usage(使用法)

如果只输入'artisan',然后点击\ <tab> \ <tab>,它将显示所有Artisan命令和选项。

输入'artisan'并按两次选项卡以查看Artisan命令和所有可用选项。

$ artisan <tab><tab>

--ansi                     asset:publish              key:generate               queue:restart
--env=                     auth:clear-reminders       list                       queue:retry
--help                     auth:reminders-controller  migrate                    queue:subscribe
--no-ansi                  auth:reminders-table       migrate:install            queue:work
--no-interaction           cache:clear                migrate:make               routes
--quiet                    changes                    migrate:publish            serve
--verbose                  clear-compiled             migrate:refresh            session:table
--version                  command:make               migrate:reset              tail
-V                         config:publish             migrate:rollback           tinker
-h                         controller:make            optimize                   up
-n                         db:seed                    queue:failed               view:publish
-q                         down                       queue:failed-table         workbench
-v                         dump-autoload              queue:flush
-vv                        env                        queue:forget
-vvv                       help                       queue:listen

键入一部分命令或选项,然后点击一个\ <tab>键和/或更多,这样就可以完成或列出更少的命令。

如果键入命令的一部分并按一次或两次\ <tab>键,则会补充命令名称或显示已过滤的列表。

$ artisan -<tab><tab>

--ansi            --no-ansi         --verbose         -h                -v
--env=            --no-interaction  --version         -n                -vv
--help            --quiet           -V                -q                -vvv

$ artisan mig<tab>

$ artisan migrate<tab><tab>

migrate           migrate:make      migrate:refresh   migrate:rollback
migrate:install   migrate:publish   migrate:reset

$ artisan migrate:<tab><tab>

install   make      publish   refresh   reset     rollback

$ artisan migrate:i<tab>

$ artisan migrate:install

在指定Artisan命令名称后,点击一些\ <tab>。因此,显示Artisan命令的选项列表。

指定Artisan命令名称后,多次按<\ tab>将显示该Artisan命令的选项。

$ artisan migrate:install<tab><tab>

$ artisan migrate:install -<tab><tab>

--ansi            --help            --quiet           -V                -q                -vvv
--database=       --no-ansi         --verbose         -h                -v
--env=            --no-interaction  --version         -n                -vv

并显示列表并最终完成它。

在缩小范围的同时,我终于补充了它。

$ artisan migrate:install --no<tab>

$ artisan migrate:install --no-<tab>

--no-ansi         --no-interaction

$ artisan migrate:install --no-a<tab>

$ artisan migrate:install --no-ansi

抑制合作

禁止补充候选人

如果您认为显示的选项太多,那么您可以禁止您指定的某些选项。

如果您认为该命令的选项太多,则可以阻止您选择显示的选项。

设置LARAVEL_NO_DISPLAY_OPTIONS环境变量。

请设置LARAVEL_NO_DISPLAY_OPTIONS环境变量。

# Normally, define in .bashrc/.bash_profile(通常、Bash設定ファイルの中で宣言)
export LARAVEL_NO_DISPLAY_OPTIONS="--ansi --no-ansi --version -v -vv -vvv"

环境

动作环境名

对于一些长期选择,这将需要更多特殊完成。

我们将为一些长期选项格式提供特殊补充。

对于“--env =”选项,它完成环境名称。

对于“--env =”选项,请补充环境名称。

$ artisan migrate --env=<tab><tab>

local       production  testing

如上所示,默认值为“本地生产测试”。如果您需要环境,请设置“$ LARAVEL_ENVIRONMENT_WORDS”。

如上表所示,默认情况下补充“本地生产测试”。如果要设置自己的环境名称,请指定“$ LARAVEL_ENVIRONMENT_WORDS”。

# Normally, define in .bashrc/.bash_profile(通常、Bash設定ファイルの中で宣言)
export LARAVEL_ENVIRONMENT_WORDS="development staging onservice"

文件路径

文件路径

对于带有“path”的longopt尾部,例如“--path =”,“ - super-path =”等,从当前目录(项目根目录)完成文件名。

例如,以“path”结尾的长选项(例如“ - path =”和“ - super - path =”)将完成当前目录(项目根目录)中的文件名。

$ artisan migrate --path=<tab><tab>

.gitattributes  app/            bootstrap/      composer.lock   public/         vendor/
.gitignore      artisan         composer.json   phpunit.xml     server.php

$ artisan migrate --path=ap<tab>

$ artisan migrate --path=app/<tab><tab>

commands/    controllers/ filters.php  models/      start/       tests/
config/      database/    lang/        routes.php   storage/     views/

与“path”相同,长选项与“dir”相同,它们将作为目录名完成。

与“path”一样,以“dir”结尾的长选项补充了目录名称。

$ artisan ide-helper:models --dir=<tab><tab>

app/         bootstrap/   public/      vendor/

数据库连接名称

数据库连接名称

对于“--database =”选项,将完成关闭课程数据库连接名称。

使用“--database =”选项,可以补充数据库连接名称。

$ artisan migrate --database=<tab><tab>

mysql   pgsql   sqlite  sqlsrv

数据库连接名称将从项目根目录下的“database.php”文件中递归收集。因此,如果您在不配置数据库的情况下使用此名称,则可能会出错。 (也许通常,它会被忽略。)

通过递归检查项目根目录下名为“database.php”的文件来收集数据库名称。因此,如果使用此名称而不是数据库设置,则可能会发生错误。 (通常,忽略Bash补充错误。)

文件名@在任何地方

文件名

在任何地方,您都可以使用“//”,“。/”,“../”,“〜/”来完成文件名。

无论何时使用“//”,“。/”,“../”,“〜/”,都可以使用文件名完成。

# Absolute file path from root directory.
# ルートディレクトリからの絶対パス
$ artisan dummy-command-name //<tab><tab>

# Relative path from current directory(projecto root).
# カレントディレクトリーからの相対パス
$ artisan dummy-command-name ./<tab><tab>

# Parent directory of project root.
# プロジェクトの親ディレクトリーからの相対パス
$ artisan dummy-command-name ../<tab><tab>

# Relative path from your home directory.
# ホームディレクトリーからの相対パス
$ artisan dummy-command-name ~/<tab><tab>

备注:通常,您可以使用readline键映射来完成文件名。所以你也可以使用它。要找到它,试试吧。

注意:文件名的完成通常由readline的键映射定义。您可以通过执行以下命令找出指定的组合键。

bind -p | grep complete-filename

如果你的密钥绑定是“\ e /”(点击\ <Esc>键,然后是'/'),那么使用如下:

例如,如果将其分配给“\ e /”('/'后面的\ / Esc>键),则按如下方式使用。

$ <esc>/<esc>/

app/            bootstrap/      composer.lock   public/         vendor/
artisan         composer.json   phpunit.xml     server.php

$ com<esc>/

$ composer.<esc>/<esc>/

composer.json  composer.lock

$ composer.j<esc>/

$ composer.json

因此,您可以随时随地自由填写文件名。

因此,您可以随时随地自由使用文件名完成。

抱歉我的英文写作不好。

最喜欢的......哦玩得开心!!

本文使用googletrans自动翻译,仅供参考, 原文来自github.com

en_README.md

Artisan-Bash completion

Bash completion code for Laravel Artisan command line tool to complete code. And also, you can use Artisan command any folders under a Laravel project.

Bash用のLaravel Artisanコマンドラインツールの補完スクリプトです。追加機能として、Laravelプロジェクトディレクトリー下のどのディレクトリー中でも、
Artisanコマンドを実行できるようにします。

Now for 5.1 LTS.
5.1LTS対応済みです。

Require(動作要件)

This completion needed some linux tools like tr, find, xargs, sort, uniq and php. Especially notice gawk. If this don't work on your environment, check whether gawk is installed. Almost linux distribution installed as 'awk'. But some distribution didn't. Simple check typing 'gawk --help' in your terminal.

And bash complition package also needed.

この補完プログラムは基本的なLinuxツール(tr, find, xargs, sort, uniq, php)を使用しています。特に注意してもらいたのがgawkです。もし動作しない時は、最初にgawkがインストールされているかチェックしてください。ほとんどのディストリビューションでは'awk'としてgawkがインストールされています。しかし、オリジナルのawkしかインストールしていないディストリビューションもあります。端末でgawk --helpと叩きチェックするのが簡単でしょう。

それと、もちろんbash complitionのパッケージも必要です。

Install(インストール)

First of all, define alias for artisan command in your .bashrc, like this :

alias artisan='php "$(_get_artisan_dir)/artisan" --ansi'

Next, if you didn't install "bash-completion" package, so please install it.

Then simply, just copy code from artisan.sh into your .bashrc or .bash_profile or something else it will be include. This is the simplest way.

Or, place the directory for include completion codes, like /usr/share/bash-completion/ or /etc/bash_completion.d/. (I never try this way. But maybe it works also. :P)

Notion: If you use alter alias name for 'php artisan', so just change last line it combine alias and bash function.

complete -F _artisan_module Your-Alias-Name-Here

先ず、最初に別名を定義してください。通常、.bashrcか.bash_profileの中で定義します。

alias artisan='php "$(_get_artisan_dir)/artisan" --ansi'

もし、多くのlinuxコマンドの補完を行う、"bash-completion"をまだインストールしていないければ、先にインストールしてください。

このパッケージをインストールする簡単な方法は、.bashrcや.bash_profileに、artisan.shのコードをコピペすることです。もしくは、/usr/share/bash-completion/とか、/etc/bash_completion.d/へファイルをコピーしてください。私は試していませんが、多分動作するでしょう。:P

注意: もし、artisan以外の別名を使用するときは、一番最後のコードを変更してください。

complete -F _artisan_module <お好きな別名をここに指定します>

Usage(使用法)

If only type 'artisan', then hit \<tab>\<tab>, it will show all Artisan commands and options.

'artisan'と入力し、タブを2回叩くと、Artisanコマンドと使用できるオプションを全部表示します。

$ artisan <tab><tab>

--ansi                     asset:publish              key:generate               queue:restart
--env=                     auth:clear-reminders       list                       queue:retry
--help                     auth:reminders-controller  migrate                    queue:subscribe
--no-ansi                  auth:reminders-table       migrate:install            queue:work
--no-interaction           cache:clear                migrate:make               routes
--quiet                    changes                    migrate:publish            serve
--verbose                  clear-compiled             migrate:refresh            session:table
--version                  command:make               migrate:reset              tail
-V                         config:publish             migrate:rollback           tinker
-h                         controller:make            optimize                   up
-n                         db:seed                    queue:failed               view:publish
-q                         down                       queue:failed-table         workbench
-v                         dump-autoload              queue:flush
-vv                        env                        queue:forget
-vvv                       help                       queue:listen

Type a part of commmands or option, then hit a \<tab> key and/or more, so it will be completed or list fewer command.

コマンドの一部を入力し\<tab>キーを一回ないし2回叩くと、コマンド名が補完されるか、絞りこまれたリストが表示されます。

$ artisan -<tab><tab>

--ansi            --no-ansi         --verbose         -h                -v
--env=            --no-interaction  --version         -n                -vv
--help            --quiet           -V                -q                -vvv

$ artisan mig<tab>

$ artisan migrate<tab><tab>

migrate           migrate:make      migrate:refresh   migrate:rollback
migrate:install   migrate:publish   migrate:reset

$ artisan migrate:<tab><tab>

install   make      publish   refresh   reset     rollback

$ artisan migrate:i<tab>

$ artisan migrate:install

After specified an Artisan command name, hit some \<tab>s. So show list of options of the Artisan command.

Artisanコマンド名を指定した後に、\<tab>を数回叩くと、そのArtisanコマンドのオプションを表示します。

$ artisan migrate:install<tab><tab>

$ artisan migrate:install -<tab><tab>

--ansi            --help            --quiet           -V                -q                -vvv
--database=       --no-ansi         --verbose         -h                -v
--env=            --no-interaction  --version         -n                -vv

And show lists and complete it finally.

絞り込みながら、最終的には補完します。

$ artisan migrate:install --no<tab>

$ artisan migrate:install --no-<tab>

--no-ansi         --no-interaction

$ artisan migrate:install --no-a<tab>

$ artisan migrate:install --no-ansi

Inhibition of complitions

補完候補の抑制

If you think too mach options displaying, so you can forbid some options you specified.

もし、コマンドのオプションが多すぎると思うのであれば、選択したオプションを表示しないようにできます。

Set LARAVEL_NO_DISPLAY_OPTIONS environment variable.

LARAVEL_NO_DISPLAY_OPTIONS環境変数を設定してください。

# Normally, define in .bashrc/.bash_profile(通常、Bash設定ファイルの中で宣言)
export LARAVEL_NO_DISPLAY_OPTIONS="--ansi --no-ansi --version -v -vv -vvv"

Environments

動作環境名

For some long options, this will take more special completion.

いくつかのロングオプション形式には、特別な補完を行います。

For "--env=" option, it complete environment names.

"--env="オプションには、環境名を補完します。

$ artisan migrate --env=<tab><tab>

local       production  testing

As above list showed, default values are "local production testing". If you want your environment, set "$LARAVEL_ENVIRONMENT_WORDS".

上記のリストの通り、デフォルトでは"local production testing"が補完対象です。自分の環境名を設定したい場合は、"$LARAVEL_ENVIRONMENT_WORDS"を指定してください。

# Normally, define in .bashrc/.bash_profile(通常、Bash設定ファイルの中で宣言)
export LARAVEL_ENVIRONMENT_WORDS="development staging onservice"

File path

ファイルパス

For a longopt tailed with "path", for instance "--path=", "--super-path=", etc., complete filename from current directory(project root).

例えば、"--path="を始め、"--super-path="のように、"path"で終わるロングオプションは、カレントディレクトリ(プロジェクトルート)からのファイル名を補完します。

$ artisan migrate --path=<tab><tab>

.gitattributes  app/            bootstrap/      composer.lock   public/         vendor/
.gitignore      artisan         composer.json   phpunit.xml     server.php

$ artisan migrate --path=ap<tab>

$ artisan migrate --path=app/<tab><tab>

commands/    controllers/ filters.php  models/      start/       tests/
config/      database/    lang/        routes.php   storage/     views/

As same as "path", the long options tailed with "dir", they will be completed as directory names.

"path"と同じように、"dir"で終わるロングオプションに対しては、ディレクトリ名で補完します。

$ artisan ide-helper:models --dir=<tab><tab>

app/         bootstrap/   public/      vendor/

Database connection name

データベース接続名

For "--database=" option, off course database connection names will be completed.

"--database="オプションでは、データベース接続名が補完されます。

$ artisan migrate --database=<tab><tab>

mysql   pgsql   sqlite  sqlsrv

Database connection names will be collected from "database.php" files under project root recursively. So if you use this name without configuring database, may make an error. (Maybe normally, it will be ignore.)

データベース名は、プロジェクトルート下の"database.php"という名前のファイルを再帰的にチェックして収集します。そのため、この名前をデータベースの設定以外で使用していると、エラーが発生する可能性があります。(通常、Bashの補完中のエラーは無視されます。)

File name @ anywhere

ファイル名

And anywhere, you can use "//", "./", "../", "~/" for completion of file names.

いつでも、"//", "./", "../", "~/"を使用すれば、ファイル名の補完が使用できます。

# Absolute file path from root directory.
# ルートディレクトリからの絶対パス
$ artisan dummy-command-name //<tab><tab>

# Relative path from current directory(projecto root).
# カレントディレクトリーからの相対パス
$ artisan dummy-command-name ./<tab><tab>

# Parent directory of project root.
# プロジェクトの親ディレクトリーからの相対パス
$ artisan dummy-command-name ../<tab><tab>

# Relative path from your home directory.
# ホームディレクトリーからの相対パス
$ artisan dummy-command-name ~/<tab><tab>

Memo : Normally, you can use a readline key-map to filename completion. So you can also use it. To find it, just try it.

メモ: 通常、ファイル名の補完はreadlineのキーマップで定義されています。どのキーコンビネーションに指定されているかは、次のコマンドを実行すれば、見つけられます。

bind -p | grep complete-filename

If your key-bind is "\e/"(hit \<Esc> key, then '/'), so use like following:

例えば、"\e/"(\<Esc>キーの後に'/')に割りつけられていれば、以下のように使用します。

$ <esc>/<esc>/

app/            bootstrap/      composer.lock   public/         vendor/
artisan         composer.json   phpunit.xml     server.php

$ com<esc>/

$ composer.<esc>/<esc>/

composer.json  composer.lock

$ composer.j<esc>/

$ composer.json

So, you can complete filename freely, anytime, anywhere.

ですから、いつでも、どこでも、自由にファイル名の補完が利用できます。

Sorry for my poor English writing.

Fave Hun...oh Have fun!!