44 breaking releases
new 0.55.0 | Jan 6, 2025 |
---|---|
0.51.0 | Dec 23, 2024 |
0.50.0 | Dec 20, 2024 |
0.38.0 | Nov 24, 2024 |
0.10.0 | Nov 30, 2023 |
#69 in Command line utilities
1,640 downloads per month
195KB
4K
SLoC
fzf-make
is a command line tool that executes commands using fuzzy finder with preview window. Currently supporting make, pnpm, yarn, just.
🛠️ Features
- 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
📦 Installation
macOS
Homebrew
# install
brew install fzf-make
# 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
# Or build from HEAD
cargo install --git https://github.com/kyu08/fzf-make/
💡 Usage
Run target using fuzzy finder
- 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.
Run target from history
- 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.
How fzf-make judges which command runner can be used
make
Whether makefile(file name should be one of GNUmakefile
, makefile
, Makefile
) is in the current directory.
pnpm
Whether package.json
and pnpm-lock.yaml
are in the current directory.
yarn
Whether package.json
and yarn.lock
are in the current directory.
just
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.)
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 |
Example Aliases
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'
💻 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)
- 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でつくった
Dependencies
~22–35MB
~532K SLoC