在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称(OpenSource Name):karb94/neoscroll.nvim开源软件地址(OpenSource Url):https://github.com/karb94/neoscroll.nvim开源编程语言(OpenSource Language):Lua 99.6%开源软件介绍(OpenSource Introduction):Neoscroll: a smooth scrolling neovim plugin written in luaDemodemo.mp4Features
InstallationYou will need neovim 0.5 for this plugin to work. Install it using your favorite plugin manager: QuickstartAdd the For require('neoscroll').setup() For lua require('neoscroll').setup() OptionsSetup function with all the options and their default values: require('neoscroll').setup({
-- All these keys will be mapped to their corresponding default scrolling animation
mappings = {'<C-u>', '<C-d>', '<C-b>', '<C-f>',
'<C-y>', '<C-e>', 'zt', 'zz', 'zb'},
hide_cursor = true, -- Hide cursor while scrolling
stop_eof = true, -- Stop at <EOF> 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.
}) Custom mappingsYou can create your own scrolling mappings using the following lua functions:
Read the documentation for more details on how to use each function. You can use the following syntactic sugar in your init.lua to define lua function mappings in normal, visual and select modes: require('neoscroll').setup({
-- Set any options as needed
})
local t = {}
-- Syntax: t[keys] = {function, {function arguments}}
t['<C-u>'] = {'scroll', {'-vim.wo.scroll', 'true', '250'}}
t['<C-d>'] = {'scroll', { 'vim.wo.scroll', 'true', '250'}}
t['<C-b>'] = {'scroll', {'-vim.api.nvim_win_get_height(0)', 'true', '450'}}
t['<C-f>'] = {'scroll', { 'vim.api.nvim_win_get_height(0)', 'true', '450'}}
t['<C-y>'] = {'scroll', {'-0.10', 'false', '100'}}
t['<C-e>'] = {'scroll', { '0.10', 'false', '100'}}
t['zt'] = {'zt', {'250'}}
t['zz'] = {'zz', {'250'}}
t['zb'] = {'zb', {'250'}}
require('neoscroll.config').set_mappings(t) Easing functionsBy default the scrolling animation has a constant speed, i.e. the time between each line scroll is constant.
If you want to smooth the start and/or end of the scrolling animation you can pass the name of one of the
easing functions that Neoscroll provides to the To learn more about easing functions here are some useful links: ExamplesUsing the same syntactic sugar introduced in Custom mappings we can write the following config: require('neoscroll').setup({
easing_function = "quadratic" -- Default easing function
-- Set any other options as needed
})
local t = {}
-- Syntax: t[keys] = {function, {function arguments}}
-- Use the "sine" easing function
t['<C-u>'] = {'scroll', {'-vim.wo.scroll', 'true', '350', [['sine']]}}
t['<C-d>'] = {'scroll', { 'vim.wo.scroll', 'true', '350', [['sine']]}}
-- Use the "circular" easing function
t['<C-b>'] = {'scroll', {'-vim.api.nvim_win_get_height(0)', 'true', '500', [['circular']]}}
t['<C-f>'] = {'scroll', { 'vim.api.nvim_win_get_height(0)', 'true', '500', [['circular']]}}
-- Pass "nil" to disable the easing animation (constant scrolling speed)
t['<C-y>'] = {'scroll', {'-0.10', 'false', '100', nil}}
t['<C-e>'] = {'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)
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论