Добавьте это в ваш ~ / .bash_profile файл или ~ / .bashrc файл
complete -W "\`grep -oE '^[a-zA-Z0-9_.-]+:([^=]|$)' Makefile | sed 's/[^a-zA-Z0-9_.-]*$//'\`" make
Это ищет цель в вашем Makefile под названием ' Makefile ' (обратите внимание на заглавную M), используя grep, и передает ее команде complete в bash, которая используется для указать, как аргументы завершены. Флаг -W означает, что ввод команды 'complete' будет списком слов, который выполняется путем передачи результатов grep через sed , который упорядочивает его в желаемый список слов формат.
Предостережения и ошибки:
Ваш make-файл называется «GNUMakefile» или «makefile», или что-то еще, кроме «Makefile». Если вы часто сталкиваетесь с такими заголовками, просто добавьте еще одну строку с тем же форматом, что и выше, но с желаемым названием make-файла вместо «Makefile» в файле ~ / .bashrc или ~ / .bash_profile.
Забыть источник файла ~ / .bash_profile или ~ / .bashrc после внесения изменений. Я добавляю эту, казалось бы, тривиальную деталь, поскольку непосвященным она незнакома.
Чтобы изменения в ваших bash-файлах вступили в силу, source их используйте команду
source ~/.bashrc
или
source ~/.bash_profile
PS. Теперь у вас также есть добавленная возможность отображать возможные создания целей, дважды нажав [Tab], как при завершении bash. Просто убедитесь, что вы добавили пробел после команды make, прежде чем дважды вводить [Tab].