gulp にはタスク名をタブキーで補完できるようにスクリプトが用意されていて、
.bashrc に下の一行を追記すれば node_modules/gulp/completion/bash
が実行され
タブキーによるタスク名の補完が出来ます。
.bashrc
eval "$(gulp --completion=bash)"
参照:
https://github.com/gulpjs/gulp/blob/master/completion/README.md
しかし、タブキーが押されるたびに毎回内部では gulp --tasks-simple
が実行されているので私の環境では非常に重いです。
そこで、自前ででっち上げました
.bashrc
function _gulp_completions() {
# The currently-being-completed word.
local cur="${COMP_WORDS[COMP_CWORD]}"
#Grab tasks
local compls=$(grep task gulpfile.js | sed -e 's/gulp.task(.//' -e 's/.,.*//' -e '/default/d')
# Tell complete what stuff to show.
COMPREPLY=($(compgen -W "$compls" -- "$cur"))
}
complete -o default -F _gulp_completions gulp
これで gulp <TAB><TAB>
と打てばタスク一覧が表示され、
先頭の一文字以上打って <TAB>
を押せば残りを補完してくれます。
サクサク補完されるので、作業効率も上がります。