All Projects β†’ psliwka β†’ Vim Smoothie

psliwka / Vim Smoothie

Licence: mit
Smooth scrolling for Vim done rightπŸ₯€

Projects that are alternatives of or similar to Vim Smoothie

Comfortable Motion.vim
Brings physics-based smooth scrolling to the Vim world!
Stars: ✭ 543 (-6.22%)
Mutual labels:  neovim, smooth-scrolling
Deoplete Jedi
deoplete.nvim source for Python
Stars: ✭ 559 (-3.45%)
Mutual labels:  neovim
Vim Chat
πŸ’œ Chatting plugin for neovim and vim8
Stars: ✭ 475 (-17.96%)
Mutual labels:  neovim
Vim Doge
(Do)cumentation (Ge)nerator 10+ languages πŸ“š Generate proper code documentation skeletons with a single keypress. ⚑️πŸ”₯
Stars: ✭ 533 (-7.94%)
Mutual labels:  neovim
Falcon
A colour scheme for terminals, Vim and friends.
Stars: ✭ 483 (-16.58%)
Mutual labels:  neovim
Ivim
I love Vim, and I also love modifying it to be more convenient and efficient. So I name it "ivim"! Welcome to contribute to ivim.
Stars: ✭ 476 (-17.79%)
Mutual labels:  neovim
Vim Deus
πŸŒ™ A better color scheme for the late night coder
Stars: ✭ 466 (-19.52%)
Mutual labels:  neovim
Tagbar
Vim plugin that displays tags in a window, ordered by scope
Stars: ✭ 5,322 (+819.17%)
Mutual labels:  neovim
Fern.vim
🌿 General purpose asynchronous tree viewer written in Pure Vim script
Stars: ✭ 552 (-4.66%)
Mutual labels:  neovim
Smooth Scrolling
smooth scrolling and parallax effects on scroll
Stars: ✭ 514 (-11.23%)
Mutual labels:  smooth-scrolling
Ranger.vim
Ranger integration in vim and neovim
Stars: ✭ 510 (-11.92%)
Mutual labels:  neovim
Asynctasks.vim
πŸš€ Modern Task System for Project Building, Testing and Deploying !!
Stars: ✭ 495 (-14.51%)
Mutual labels:  neovim
Vim Lsc
A vim plugin for communicating with a language server
Stars: ✭ 545 (-5.87%)
Mutual labels:  neovim
Fzf Preview.vim
The plugin that powerfully integrates fzf and (Neo)vim. It is also possible to integrate with coc.nvim.
Stars: ✭ 563 (-2.76%)
Mutual labels:  neovim
Vim Plugins Profile
πŸ•“ Profile Vim's plugins, generate awesome statistics and optimize (n)vim startup time
Stars: ✭ 508 (-12.26%)
Mutual labels:  neovim
Bunny
BunnyJS - Lightweight native (vanilla) JavaScript (JS) and ECMAScript 6 (ES6) browser library, package of small stand-alone components without dependencies: FormData, upload, image preview, HTML5 validation, Autocomplete, Dropdown, Calendar, Datepicker, Ajax, Datatable, Pagination, URL, Template engine, Element positioning, smooth scrolling, routing, inversion of control and more. Simple syntax and architecture. Next generation jQuery and front-end framework. Documentation and examples available.
Stars: ✭ 473 (-18.31%)
Mutual labels:  smooth-scrolling
Coc Python
Python extension for coc.nvim, fork of vscode-python
Stars: ✭ 542 (-6.39%)
Mutual labels:  neovim
Conjure
Interactive evaluation for Neovim (Clojure, Fennel, Janet, Racket, Hy, MIT Scheme, Guile)
Stars: ✭ 569 (-1.73%)
Mutual labels:  neovim
Evervim
A Modern, Powerful & Modular Vim Distribution
Stars: ✭ 568 (-1.9%)
Mutual labels:  neovim
Coc Snippets
Snippets solution for coc.nvim
Stars: ✭ 547 (-5.53%)
Mutual labels:  neovim

vim-smoothie: Smooth scrolling for Vim done rightπŸ₯€

This (neo)vim plugin makes scrolling nice and smooth. Find yourself completely lost every time you press Ctrl-D or Ctrl-F? You might want to give vim-smoothie a try!

scrolling demo

Installation

You will need reasonably new Vim or Neovim with timers support. Vim 8+ or Neovim 0.3+ should do the trick.

Install the plugin using your favorite plugin manager, for example vim-plug:

Plug 'psliwka/vim-smoothie'

Customization

vim-smoothie aims for sane defaults, and should work out-of-the-box for most users. In some cases, however, you might want to customize its behavior, by adjusting one or more of the following variables in your vimrc:

  • g:smoothie_enabled: Set it to 0 (or v:false) to disable vim-smoothie. Useful for temporary disabling the plugin, f.ex. when running Vim over extremely slow connections.
  • g:smoothie_no_default_mappings: If true, will prevent the plugin from overriding default scrolling keys (Ctrl-D and friends). You are then supposed to bind keys you like by yourself. See plugin/smoothie.vim to discover available mappings.
  • g:smoothie_experimental_mappings: Set this to true to enable additional, experimental mappings (currently gg and G). It is not recommended to enable them unless you're ready to fight potential bugs.

Alternatives, a.k.a. why create yet another plugin

There are many other Vim plugins attempting to resolve the same problem. The most interesting one is sexy_scroller.vim, which covers way more movement commands than vim-smoothie will ever do. Unfortunately, it also suffers from frequent visual artifacts, such as erratic screen jumps and animation jittering, impairing visual orientation and breaking the user experience. Many of these bugs are nearly impossible to fix due to the plugin's internal design. Hence, vim-smoothie was born, focusing on stable, bug-free, smooth experience, at a cost of smaller feature set.

The table below summarizes key differences between vim-smoothie and three other popular smooth scrolling plugins I've used in the past: sexy_scroller.vim, comfortable-motion.vim, and vim-smooth-scroll.

vim-smoothie sexy_scroller.vim comfortable-motion.vim vim-smooth-scroll
Supported commands ^D ^U ^F ^B gg1 G1 A lot❀️ ^D ^U ^F ^B ^D ^U ^F ^B
Erratic screen jumps and jittering now and then Nope A lotπŸ’” Nope Nope
Scrolling distance is proportional to window height βœ… βœ… ❌ βœ…
Easing out (soft-stop) βœ… βœ… βœ… ❌
Supports setting [count] before movement (f.ex. 3^F to scroll down 3 pages) βœ… βœ… ❌ ❌
Respects scroll and startofline options βœ… βœ… ❌ ❌
^D and ^U behave correctly near buffer ends, just moving the cursor instead of scrolling the window βœ… βœ… ❌ ❌
Terminal bell support βœ… βœ… ❌ ❌
Pun in name βœ… βœ… ❌ ❌

Notes:

  1. these commands are experimental and disabled by default

Known issues/incompatibilities

vim-smoothie strives to remain fully compatible with native commands it replaces. That is, every command should still behave exactly as described in :help scroll.txt. There are still some deviations from the original behavior, which hopefully will be addressed in the future:

  • ^F and ^B should respect the window option.
  • Native commands may move in a smarter way over wrapped/folded lines.

Credits

Created by Piotr Śliwka. Improved by Klas Segeljakt and Subhaditya Nath.

Many thanks to authors of vim-smooth-scroll, comfortable-motion.vim, and sexy_scroller.vim for inspiration!

License

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].