zsh-smart-insert
April 20, 2025 ยท View on GitHub
Smart file search and insertion for Zsh โจ
Insert file paths from fuzzy search directly into your command line.
๐ About
zsh-smart-insert is a Zsh plugin that provides interactive widgets to search for files and content using fd, rg, and fzf. It inserts the result directly into your shell with optional command prefixes.
- ๐ File path selection with preview via
fd+fzf - ๐ง Content search with reactive reload using
ripgrep - โจ๏ธ Prefix support (e.g.
vim,cat,less,code) - ๐จ Syntax-highlighted preview using
bat
โ๏ธ Requirements
| Tool | Purpose | Link |
|---|---|---|
fzf | Interactive fuzzy search | Link |
fd | File system search | Link |
rg | Content search engine | Link |
bat | Preview with syntax highlighting | Link |
๐ Installation
Manual
git clone https://github.com/lgdevlop/zsh-smart-insert.git ~/.zsh-smart-insert
echo "source ~/.zsh-smart-insert/zsh-smart-insert.plugin.zsh" >> ~/.zshrc
source ~/.zshrc
Zinit
zinit light lgdevlop/zsh-smart-insert
Antigen
antigen bundle lgdevlop/zsh-smart-insert
Oh My Zsh (manual plugin)
git clone https://github.com/lgdevlop/zsh-smart-insert.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-smart-insert
Then add to your .zshrc:
plugins=(git zsh-smart-insert)
Reload with:
omz reload # if using Oh My Zsh
# or
source ~/.zshrc
๐ก Usage
Alt+fโ Pick files by name withfdAlt+gโ Search files by name withrgAlt+sโ Search file content with live reload
Each result is inserted at the cursor with an optional prefix.
Example: Select a file with
vimas prefix โ insertsvim ./my/file.txt
More examples in project-docs/examples.md
๐งฉ Configuration
You can customize behavior with environment variables:
# Custom prefix options (fzf menu)
export ZSH_SMART_INSERT_PREFIXES="nvim:less:code"
# Custom directories to ignore in fd/rg
export ZSH_SMART_INSERT_IGNOREDIRS=".git/*:node_modules/:dist/:.venv/"
โจ๏ธ Shortcuts
| Key | Action |
|---|---|
Alt+f | Fuzzy file picker with preview |
Alt+g | File name search with rg |
Alt+s | Content search with live reload |
Ctrl+/ | Toggle preview in FZF |
See project-docs/shortcuts.md for full reference.
๐ Project Structure
.
โโโ zsh-smart-insert.plugin.zsh # Plugin entry point
โโโ functions/ # Reusable Zsh helpers
โโโ internal/ # ZLE widgets (fzf search)
โโโ scripts/ # Automation (e.g. release notes)
โโโ project-docs/ # Docs: shortcuts, examples
โโโ .github/workflows/ # CI/CD pipelines
โโโ install.sh # Interactive installer
๐ฃ๏ธ Roadmap
- Prefix selector with command injection
- Search by name and content
- Interactive previews with
bat - Customizable prefixes and ignored paths
- Per-widget user customization (e.g. ignoredir by mode)
- Custom themes and per-widget configuration
๐ Related Docs
๐ค Contributing
Contributions are welcome! Open an issue or submit a pull request.
See CONTRIBUTING.md and CODE_OF_CONDUCT.md.
๐ License
MIT โ See LICENSE.
๐ค Author
Made with โค๏ธ by Leonardo Gomes
โจ zsh-smart-insert โ Insert smarter, search faster!