Как сделать чтобы автодополнение Makefile работало в macOS для bash?
Сначала убедитесь, что у вас установлен bash-completion.
Затем добавьте это в ваш файл ~/.bash_profile
или в ~/.bashrc
:
complete -W "\`grep -oE '^[a-zA-Z0-9_.-]+:([^=]|$)' Makefile | sed 's/[^a-zA-Z0-9_.-]*$//'\`" make
Предполагается, что все ваши Makefile называются с заглавной буквы M (Makefile)
. Если это не так, вам нужно будет адаптировать эту команду под вашу конкретную схему именования файлов.
Если вы хотите исключить dot-targets (точечные цели) из автозаполенения (включая все специальные цели .PHONY
), вы можете использовать его немного измененную версию:
complete -W "\`grep -oE '^[^.][a-zA-Z0-9_.-]+:([^=]|$)' Makefile | sed 's/[^a-zA-Z0-9_.-]*$//'\`" make
Чтобы конфиг применился, выполните команду
source ~/.bash_profile
Вот так с помощью нехитрой команды, можно настроить работу автодополнения для bash в makefile.
Орининал: Bash auto-completion for Makefile targets in macOS