local status_ok, neoscroll = pcall(require, "neoscroll") if not status_ok then return end neoscroll.setup { -- All these keys will be mapped to their corresponding default scrolling animation mappings = { "", "", "", "", "", "", "zt", "zz", "zb" }, hide_cursor = true, -- Hide cursor while scrolling stop_eof = true, -- Stop at when scrolling downwards use_local_scrolloff = false, -- Use the local scope of scrolloff instead of the global scope respect_scrolloff = true, -- Stop scrolling when the cursor reaches the scrolloff margin of the file cursor_scrolls_alone = false, -- The cursor will keep on scrolling even if the window cannot scroll further -- easing_function = nil, -- Default easing function -- pre_hook = nil, -- Function to run before the scrolling animation starts -- post_hook = nil, -- Function to run after the scrolling animation ends } local t = {} -- Syntax: t[keys] = {function, {function arguments}} -- t[''] = {'scroll', {'-vim.wo.scroll', 'true', '250'}} -- t[''] = {'scroll', { 'vim.wo.scroll', 'true', '250'}} -- t[''] = {'scroll', {'-vim.api.nvim_win_get_height(0)', 'true', '450'}} -- t[''] = {'scroll', { 'vim.api.nvim_win_get_height(0)', 'true', '450'}} -- t[''] = {'scroll', {'-0.10', 'false', '100'}} -- t[''] = {'scroll', { '0.10', 'false', '100'}} -- t['H'] = {'scroll', {'-0.10', 'true', '100'}} -- t['L'] = {'scroll', { '0.10', 'true', '100'}} t[""] = { "scroll", { "-vim.wo.scroll", "true", "250" } } t[""] = { "scroll", { "vim.wo.scroll", "true", "250" } } -- t['zt'] = {'zt', {'250'}} -- t['zz'] = {'zz', {'250'}} -- t['zb'] = {'zb', {'250'}} require("neoscroll.config").set_mappings(t)