`fzf-make` is a command line tool that executes make target using fuzzy finder with preview window.
![License:MIT](https://img.shields.io/static/v1?label=License&message=MIT&color=blue&style=flat-square)
[![Latest Release](https://img.shields.io/github/v/release/kyu08/fzf-make?style=flat-square)](https://github.com/kyu08/fzf-make/releases/latest)
[![crates.io](https://img.shields.io/crates/v/fzf-make?style=flatflat-square)](https://crates.io/crates/fzf-make)
[![Crates.io Total Downloads](https://img.shields.io/crates/d/fzf-make)](https://crates.io/crates/fzf-make)
[English]
[Deutsch]
[Français]
🛠️ Features
- Select and execute a make target using fuzzy-finder with a preview window by running
fzf-make
!
- Execute the last executed target(By running
fzf-make --repeat
.)
- Command history
- Support
include
directive
- (Scheduled to be developed) Support config file
👓 Prerequisites
- (If you install fzf-make via a package manager other than Homebrew) bat
- In the future, we intend to make it work with
cat
as well, but currently it only works with bat
.
📦 Installation
macOS
Homebrew
You don't need to install bat
because fzf-make
will install it automatically via Homebrew.
# install
brew install kyu08/tap/fzf-make
# update
brew update
brew upgrade fzf-make
Arch Linux
fzf-make
can be installed from the AUR using an AUR helper. For example:
paru -S fzf-make
NixOS / Nix (package manager)
fzf-make
can be run from the repository (latest version)
nix run github:kyu08/fzf-make
Or from the nixpkgs (channel >= 23.05)
nix run nixpkgs#fzf-make
Note
You may need to enable experimental feature. In that case, execute the following command to enable them
echo "experimental-features = nix-command flakes" | tee ~/.config/nix/nix.conf
OS-independent method
Cargo
cargo install --locked fzf-make
💡 Usage
Run target using fuzzy finder
- Execute
fzf-make
in the directory include makefile(file name should be one of GNUmakefile
, makefile
, Makefile
)
- Select make command you want to execute. If you type some characters, the list will be filtered.
Run target from history
- Execute
fzf-make
in the directory include makefile(file name should be one of GNUmakefile
, makefile
, Makefile
)
- Press
Tab
to move to the history pane.
- Select make command you want to execute.
Commands Supported
Command |
Description |
fzf-make |
Launch fzf-make |
fzf-make --repeat / fzf-make -r / fzf-make repeat |
Execute last executed target |
fzf-make --history / fzf-make -h / fzf-make history |
Launch fzf-make with the history pane focused |
fzf-make --help / fzf-make help |
Show help |
fzf-make --version / fzf-make -v / fzf-make version |
Show version |
💻 Development
- Clone this repository
- Change the codes
- Run
make run
To execute test, run make test
(needs nextest
).
nix
Or you can use nix
to create a development shell with the project dependencies.
Within the repo root, execute the following command:
nix develop
👥 Contribution
- Contributions are welcome!
- If you have a Feature request, please create an issue first.
- If you have added fzf-make to some package manager, please let me know. (or please send a PR to add how to install via the package manager in the
README.md
)
- If you have any questions, feel free to create an issue and ask.
🗒 Related Article(s)