fzf-make
is a command line tool that executes commands using fuzzy finder with preview window. Currently supporting make, pnpm, yarn, just.
- Select and execute a make target or (pnpm | yarn) scripts or just recipe using fuzzy-finder with a preview window by running
fzf-make
! - Execute the last executed command(By running
fzf-make --repeat
.) - Command history
- Support make, pnpm, yarn, just. Scheduled to be developed: npm.
- [make] Support
include
directive - [pnpm] Support workspace(collect scripts all of
package.json
in the directory where fzf-make is launched.) - [yarn] Support workspace(collect all scripts which is defined in
workspaces
field in rootpackage.json
.) - [just] Support execution inside of directory of justfile.
- (Scheduled to be developed) Support config file
# install
brew install fzf-make
# update
brew upgrade fzf-make
fzf-make
can be installed from the AUR using an AUR helper. For example:
paru -S fzf-make
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
cargo install --locked fzf-make
# Or build from HEAD
cargo install --git https://github.com/kyu08/fzf-make/
- Execute
fzf-make
in the directory you want to run make target, or (pnpm | yarn) scripts or just recipe. - Select command you want to execute. If you type some characters, the list will be filtered.
- Execute
fzf-make
in the directory you want to run make target, or (pnpm | yarn) scripts or just recipe.(For just, we support execution inside of directory of justfile.) - Press
Tab
to move to the history pane. - Select command you want to execute.
Whether makefile(file name should be one of GNUmakefile
, makefile
, Makefile
) is in the current directory.
Whether package.json
and pnpm-lock.yaml
are in the current directory.
Whether package.json
and yarn.lock
are in the current directory.
Whether justfile
or .justfile
are in the current directory or ancestor directories. If the lower cased file name matches justfile
or .justfile
, it is treat as a justfile. (e.g. justFile
or .JustFile
are also valid.)
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 |
To simplify the usage of fzf-make
, you can define aliases in your shell configuration. Below is an example configuration that works for most shells (bash, zsh, fish, etc.):
alias fm='fzf-make'
alias fr='fzf-make repeat'
alias fh='fzf-make history'
- Clone this repository
- Change the codes
- Run
make run
To execute test, run make test
(needs nextest
).
Or you can use nix
to create a development shell with the project dependencies.
Within the repo root, execute the following command:
nix develop
- 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.
- fzf-make - A command runner with fuzzy finder and preview window for make, pnpm - reddit
- Show HN: fzf-make – a command runner with a fuzzy finder for make, pnpm and yarn - Hacker News
- (Japanese)[make,pnpm,yarnに対応]タスクランナーのコマンドをfuzzy finder形式で選択できるCLIツール fzf-makeの紹介
- (Japanese)Makefileに定義されたtargetをfzfで選択して実行するCLIツールをRustでつくった