A smooth scrolling plugin for Neovim written in Lua, enhancing built-in window movement commands with customizable animations.
Neoscroll is a Lua plugin for Neovim that adds smooth, animated scrolling to built-in window movement commands. It replaces the default instant jumps with customizable transitions, making navigation in text editors more visually comfortable and less jarring. The plugin solves the problem of abrupt scrolling in Vim/Neovim by introducing easing functions and performance optimizations.
Neovim users who frequently scroll through code or text and want a smoother, more modern editing experience. It's particularly useful for developers who spend long hours in the editor and value visual polish and customization.
Developers choose Neoscroll because it's a lightweight, Lua-native solution that integrates seamlessly with Neovim's ecosystem. Unlike simpler alternatives, it offers fine-grained control over scrolling behavior, easing functions, and performance tweaks without bloating the editor.
Smooth scrolling neovim plugin written in lua
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Replaces abrupt scrolling with easing functions for commands like <C-u> and <C-d>, providing a more comfortable editing experience as shown in the demo video.
Offers fine-grained control over duration, easing functions, cursor hiding, and scrolloff margins through a detailed Lua setup configuration.
Includes an option to disable syntax highlighting during scrolls, improving performance on slower machines or files with heavy highlighting.
Leverages Neovim's Lua API for efficient scrolling functions and supports pre_hook and post_hook for custom code execution around animations.
The README admits that scrolling commands like <C-u> and <C-d> can disrupt macro recording and playback, which is a significant limitation for power users.
Requires Neovim 0.5 or higher, making it incompatible with Vim or older Neovim versions, thus limiting its accessibility.
Setting up custom mappings and hooks demands familiarity with Lua and Neovim's keymap API, which can be a barrier for users new to scripting.