MakeMeFish simplifies the usage of Makefiles by providing quick navigation and searching through make targets.
- Type ahead searching - just write a few characters to filter out the targets you are looking for
- Preview - When selecting a target, an excerpt of the target will be shown in the makefile, with match highlighting
- Snappy - fzf-ingly fast!
- Fish shell 3+
- fzf https://github.com/junegunn/fzf#installation
Don't use fish? Get in touch if you want MakeMe support in your shell.
omf install MakeMe
fisher add oakninja/MakeMeFish
or
fisher add oakninja/MakeMeFish@next-release
to get the latest version.
it's also possible to get the previous version by running
fisher add oakninja/MakeMeFish@previous-version
Download and copy mm.fish
to ~/.config/fish/functions
or run
curl https://raw.githubusercontent.com/OakNinja/MakeMeFish/master/mm.fish?nocache --create-dirs -sLo ~/.config/fish/functions/mm.fish
Basic usage:
type mm
, if there is a Makefile in the current working directory, all targets will be listed. Start typing to filter targets.
Parameters:
-h
or--help
to print the help.-f <filename>
to specify a makefile if you have several in the cwd, or if you have a non-standard name.-i
to start MakeMefish in interactive mode. In interactive mode, the selected target will be executed and you will then be returned to the selection prompt. Please note that executed commands won't be added to your command history.<foo>
eg. add an arbitrary keyword to start MakeMeFish with a pre-populated query (editable at runtime)
mm build
will start MakeMeFish
with an initial query which will filter for targets containing the substring build
.
Similarly, mm foo bar
will filter on targets containing both foo
and bar
mm -f MyFancyMakeFile
will start MakeMeFish
and parse the file MyFancyMakeFile
instead of trying to find a makefile with a GNU make standard name.
mm -i
will run MakeMeFish
in interactive mode
All flags and parameters can be combined, and added in any order, eg.
mm foo -i -f MyFancyMakeFile
is equivalent to mm -f MyFancyMakeFile foo -i