A Neovim plugin that separates cut from delete operations to preserve your yank register.
Cutlass.nvim is a Neovim plugin that separates cut operations from delete operations in Vim/Neovim. It solves the problem where deleting text unintentionally overwrites the yank register by redirecting delete commands to the black hole register. This allows users to delete text without affecting their copied content.
Neovim users who frequently work with text editing and want more predictable register behavior, particularly those who find the default Vim behavior of delete overwriting yank registers frustrating.
Developers choose Cutlass.nvim because it provides a clean separation between cut and delete operations with minimal configuration, is written in Lua for better performance than Vimscript alternatives, and integrates well with other popular Neovim plugins.
Plugin that adds a 'cut' operation separate from 'delete'
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Rewritten in Lua for Neovim, the author claims it's more efficient than the original Vimscript version, as noted in the 'Why' section of the README.
Designed to work with plugins like vim-yoink, lightspeed.nvim, and leap.nvim, with specific configuration examples for key exclusion to avoid conflicts.
Offers options to set a custom cut key (e.g., 'm'), exclude specific keys, and redirect registers for delete, change, and select operations, as detailed in the configuration section.
Addresses a common pain point by redirecting delete operations to the black hole register, preventing accidental overwriting of yanked text and improving editing predictability.
Remaps fundamental editing keys like 'd', 'x', and 'c' by default, which can disrupt muscle memory and require users to adapt their workflow, especially if accustomed to standard Vim.
To avoid conflicts with plugins like lightspeed.nvim, users must manually exclude keys in the setup, adding complexity and potential for misconfiguration, as shown in the integration examples.
Only compatible with Neovim >= 0.7.0 (with a separate branch for 0.5), excluding vanilla Vim users and those on older versions without extra steps.