diff --git a/laptop/config/keymaps.lua b/laptop/config/keymaps.lua index e871429..12d724c 100644 --- a/laptop/config/keymaps.lua +++ b/laptop/config/keymaps.lua @@ -5,7 +5,7 @@ vim.g.mapleader = ',' vim.g.maplocalleader = ';' -- Set K to hover -vim.api.nvim_buf_create_user_command(0, "LspHover", "lua vim.lsp.buf.hover()", {nargs = '+' }) +vim.api.nvim_buf_create_user_command(0, "LspHover", "lua vim.lsp.buf.hover()", { nargs = '+' }) vim.opt.keywordprg = ":LspHover" -- Use ctrl-[hjkl] to select the active split! @@ -32,4 +32,3 @@ vim.keymap.set('n', 'f', ":Files", { remap = false }) -- Move around buffers using ,j and ,k vim.keymap.set('n', 'k', ":bnext", { remap = false }) vim.keymap.set('n', 'j', ":bprevious", { remap = false }) - diff --git a/laptop/config/plugins.lua b/laptop/config/plugins.lua index 41b8540..54be125 100644 --- a/laptop/config/plugins.lua +++ b/laptop/config/plugins.lua @@ -60,6 +60,7 @@ require("lazy").setup( "kylechui/nvim-surround", "junegunn/fzf", "junegunn/fzf.vim", + "karb94/neoscroll.nvim", }, { lockfile = vim.fn.stdpath("config") .. "/config/lazy-lock.json", diff --git a/laptop/plugin/neoscroll.lua b/laptop/plugin/neoscroll.lua new file mode 100644 index 0000000..5efd765 --- /dev/null +++ b/laptop/plugin/neoscroll.lua @@ -0,0 +1,35 @@ +-- Keep cursor away from the edges +vim.opt.scrolloff = 8 + +require("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 + respect_scrolloff = false, -- Stop scrolling when the cursor reaches the scrolloff margin of the file + cursor_scrolls_alone = true, -- 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 + performance_mode = false, -- Disable "Performance Mode" on all buffers. + easing_function = "quadratic", -- Default easing function +}) + +local t = {} +-- Syntax: t[keys] = {function, {function arguments}} +-- Use the "sine" easing function +t[''] = { 'scroll', { '-vim.wo.scroll', 'true', '350', [['sine']] } } +t[''] = { 'scroll', { 'vim.wo.scroll', 'true', '350', [['sine']] } } +-- Use the "circular" easing function +t[''] = { 'scroll', { '-vim.api.nvim_win_get_height(0)', 'true', '500', [['circular']] } } +t[''] = { 'scroll', { 'vim.api.nvim_win_get_height(0)', 'true', '500', [['circular']] } } +-- Pass "nil" to disable the easing animation (constant scrolling speed) +t[''] = { 'scroll', { '-0.10', 'false', '100', nil } } +t[''] = { 'scroll', { '0.10', 'false', '100', nil } } +-- When no easing function is provided the default easing function (in this case "quadratic") will be used +t['zt'] = { 'zt', { '300' } } +t['zz'] = { 'zz', { '300' } } +t['zb'] = { 'zb', { '300' } } + +require('neoscroll.config').set_mappings(t) diff --git a/server/config/plugins.lua b/server/config/plugins.lua index 0b54fdb..aae4f2e 100644 --- a/server/config/plugins.lua +++ b/server/config/plugins.lua @@ -51,6 +51,7 @@ require("lazy").setup( "kylechui/nvim-surround", "junegunn/fzf", "junegunn/fzf.vim", + "karb94/neoscroll.nvim", }, { lockfile = vim.fn.stdpath("config") .. "/config/lazy-lock.json", diff --git a/server/plugin/neoscroll.lua b/server/plugin/neoscroll.lua new file mode 100644 index 0000000..ea41343 --- /dev/null +++ b/server/plugin/neoscroll.lua @@ -0,0 +1,35 @@ +-- Keep cursor away from the edges +vim.opt.scrolloff = 8 + +require("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 + respect_scrolloff = false, -- Stop scrolling when the cursor reaches the scrolloff margin of the file + cursor_scrolls_alone = true, -- 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 + performance_mode = false, -- Disable "Performance Mode" on all buffers. + easing_function = "quadratic", -- Default easing function +}) + +local t = {} +-- Syntax: t[keys] = {function, {function arguments}} +-- Use the "sine" easing function +t[''] = { 'scroll', { '-vim.wo.scroll', 'true', '350', [['sine']] } } +t[''] = { 'scroll', { 'vim.wo.scroll', 'true', '350', [['sine']] } } +-- Use the "circular" easing function +t[''] = { 'scroll', { '-vim.api.nvim_win_get_height(0)', 'true', '500', [['circular']] } } +t[''] = { 'scroll', { 'vim.api.nvim_win_get_height(0)', 'true', '500', [['circular']] } } +-- Pass "nil" to disable the easing animation (constant scrolling speed) +t[''] = { 'scroll', { '-0.10', 'false', '100', nil } } +t[''] = { 'scroll', { '0.10', 'false', '100', nil } } +-- When no easing function is provided the default easing function (in this case "quadratic") will be used +t['zt'] = { 'zt', { '300' } } +t['zz'] = { 'zz', { '300' } } +t['zb'] = { 'zb', { '300' } } + +require('neoscroll.config').set_mappings(t) diff --git a/vps/config/plugins.lua b/vps/config/plugins.lua index 19bfa56..2a6439a 100644 --- a/vps/config/plugins.lua +++ b/vps/config/plugins.lua @@ -51,6 +51,7 @@ require("lazy").setup( "kylechui/nvim-surround", "junegunn/fzf", "junegunn/fzf.vim", + "karb94/neoscroll.nvim", }, { lockfile = vim.fn.stdpath("config") .. "/config/lazy-lock.json", diff --git a/vps/plugin/neoscroll.lua b/vps/plugin/neoscroll.lua new file mode 100644 index 0000000..5efd765 --- /dev/null +++ b/vps/plugin/neoscroll.lua @@ -0,0 +1,35 @@ +-- Keep cursor away from the edges +vim.opt.scrolloff = 8 + +require("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 + respect_scrolloff = false, -- Stop scrolling when the cursor reaches the scrolloff margin of the file + cursor_scrolls_alone = true, -- 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 + performance_mode = false, -- Disable "Performance Mode" on all buffers. + easing_function = "quadratic", -- Default easing function +}) + +local t = {} +-- Syntax: t[keys] = {function, {function arguments}} +-- Use the "sine" easing function +t[''] = { 'scroll', { '-vim.wo.scroll', 'true', '350', [['sine']] } } +t[''] = { 'scroll', { 'vim.wo.scroll', 'true', '350', [['sine']] } } +-- Use the "circular" easing function +t[''] = { 'scroll', { '-vim.api.nvim_win_get_height(0)', 'true', '500', [['circular']] } } +t[''] = { 'scroll', { 'vim.api.nvim_win_get_height(0)', 'true', '500', [['circular']] } } +-- Pass "nil" to disable the easing animation (constant scrolling speed) +t[''] = { 'scroll', { '-0.10', 'false', '100', nil } } +t[''] = { 'scroll', { '0.10', 'false', '100', nil } } +-- When no easing function is provided the default easing function (in this case "quadratic") will be used +t['zt'] = { 'zt', { '300' } } +t['zz'] = { 'zz', { '300' } } +t['zb'] = { 'zb', { '300' } } + +require('neoscroll.config').set_mappings(t)