A bundle of over 30 new text objects for Neovim, enhancing editing with forward-seeking motions and pattern-based selections.
nvim-various-textobjs is a Neovim plugin that bundles over 30 new text objects, extending the editor's native selection capabilities. It provides intuitive motions for selecting indentation blocks, subwords, URLs, key-value pairs, and many other code and text patterns, often with forward-seeking behavior to operate without precise cursor placement. The plugin solves the problem of repetitive navigation and manual selection by offering quick, context-aware text objects for common editing tasks.
Neovim users, particularly developers and writers who frequently edit structured text or code and want faster, more expressive text manipulation without heavy dependencies. It's especially valuable for those who work with multiple file types and prefer lightweight, pattern-based solutions.
Developers choose nvim-various-textobjs for its extensive collection of practical text objects that work out-of-the-box across many languages, its forward-seeking motions that reduce navigation overhead, and its lightweight design that complements rather than replaces existing Treesitter-based tools. It offers a versatile, configurable set of selections that enhance editing efficiency with minimal setup.
Bundle of more than 30 new text objects 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.
Bundles over 30 practical text objects, including indentation blocks, subwords, URLs, and key-value pairs, as detailed in the comprehensive README table, reducing the need for manual navigation.
Many text objects can seek forward within configurable ranges (small or big), allowing operations like changing the next URL without moving the cursor first, which saves time in editing tasks.
Uses pattern-based selections that work across many file types without requiring Treesitter, making it a low-dependency plugin suitable for diverse editing environments, as stated in the philosophy.
Offers customizable keybindings, behavior settings, and an API for advanced usage, enabling users to create custom commands or adapt text objects to specific needs, as shown in the configuration and advanced sections.
Relies on pattern matching which can be imprecise in edge cases; the README admits that text objects like 'argument' are less accurate than Treesitter-based versions, leading to potential selection errors.
Most characterwise text objects do not match multiline objects, such as the 'value' text object not working for multiline assignments, restricting its usefulness in complex code editing.
Counts are not supported for most text objects, a noted limitation that hinders the ability to perform repeated operations with a single command, unlike some native Vim text objects.