return { 'karb94/neoscroll.nvim', config = function() local neoscroll = require 'neoscroll' neoscroll.setup { mappings = { '', '', '', '', 'zt', 'zz', 'zb', }, easing = 'quadratic', } local keymap = { [''] = function() neoscroll.ctrl_u { duration = 100 } end, [''] = function() neoscroll.ctrl_d { duration = 100 } end, [''] = function() neoscroll.ctrl_b { duration = 100 } end, [''] = function() neoscroll.ctrl_f { duration = 100 } end, ['zt'] = function() neoscroll.zt { half_win_duration = 150 } end, ['zz'] = function() neoscroll.zz { half_win_duration = 150 } end, ['zb'] = function() neoscroll.zb { half_win_duration = 150 } end, } local modes = { 'n', 'v', 'x' } for key, func in pairs(keymap) do vim.keymap.set(modes, key, func) end end, }