Вывод подсказок для Makefile
Проблема:
Ты помнишь опкоды старых процессоров, помнишь имена регистров, которых давно нет ни в одном учебнике, — но не помнишь, как называется цель в Makefile, которую вчера дописывал руками. Память устроена избирательно, и на имена целей в ней места не нашлось. Здравый смысл тут бессилен, и никакой сертификат не поможет: смотреть под слои придётся самому.
Решение:
Добавить в файл ~/.bashrc следующую команду :
complete -W "\`grep -oE '^[a-zA-Z0-9_.-]+:([^=]|$)' ?akefile | sed 's/[^a-zA-Z0-9_.-]*$//'\`" make
или используя fzf (если не установлен : sudo apt install fzf)
Греп, сед, завершение — три маленьких винтика, которые работают, пока где-то продают «интеллектуальную оболочку» за подписку. Чуть сложнее, зато честнее: цель выбираешь пальцем, а не памятью.
complete -W "\`grep -oE '^[a-zA-Z0-9_.-]+[\\:]*[a-zA-Z0-9_.-]+:([^=]|$)' ?akefile | sort | uniq | sed 's/[^a-zA-Z0-9_.-]*$//' | sed 's/[\]//g' | fzf\`" make
Машина предлагает, ты выбираешь. Инструмент меняется — привычка остаётся.