A Neovim plugin for powerful find-and-replace operations using ripgrep or ast-grep with a transparent, user-friendly interface.
grug-far.nvim is a find-and-replace plugin for Neovim that leverages ripgrep and ast-grep for searching and replacing text across files. It provides a dedicated buffer interface with real-time previews, inline editing, and flexible configuration to make complex refactoring and code modifications more efficient.
Neovim users who need to perform advanced, cross-file find-and-replace operations, particularly developers working on large codebases or complex refactoring tasks.
Developers choose grug-far.nvim for its deep integration with powerful CLI tools like ripgrep and ast-grep, offering regex and AST-based pattern matching with a transparent, buffer-based UI that supports inline editing, real-time previews, and flexible scripting for replacements.
Find And Replace plugin for neovim
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Leverages ripgrep for regex and ast-grep for AST-based searches, supporting multiline patterns and complex refactoring with real-time previews.
Allows direct editing of search results in a dedicated buffer with configurable sync actions, mimicking normal Vim edits and reducing context switching.
Supports Lua and Vimscript interpreters for dynamic replacements, enabling custom logic per match, such as accessing meta variables in ast-grep queries.
Displays raw CLI commands and errors from ripgrep/ast-grep, aiding debugging and learning without hiding tool outputs.
Requires ripgrep and optionally ast-grep, adding installation overhead and potential compatibility issues, especially in restricted environments.
Inline sync editing is not supported with the ast-grep engine, forcing users to use replace actions for AST-based changes, as noted in the README.
Admits to using ripgrep for file filtering with ast-grep due to missing --glob support, contradicting the uniformity principle stated in the philosophy.
Extensive setup with custom keymaps and integrations, like with file explorers, demands significant initial investment in Lua scripting and configuration.