{"id":13479660,"url":"https://github.com/psliwka/vim-smoothie","last_synced_at":"2025-10-13T13:50:09.186Z","repository":{"id":38709966,"uuid":"221776000","full_name":"psliwka/vim-smoothie","owner":"psliwka","description":"Smooth scrolling for Vim done right🥤","archived":false,"fork":false,"pushed_at":"2022-06-10T17:30:41.000Z","size":318,"stargazers_count":1020,"open_issues_count":16,"forks_count":27,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-10-12T01:58:54.500Z","etag":null,"topics":["neovim","smooth-scrolling","vim"],"latest_commit_sha":null,"homepage":"","language":"Vim script","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/psliwka.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-11-14T19:57:07.000Z","updated_at":"2025-09-09T11:19:56.000Z","dependencies_parsed_at":"2022-07-11T02:18:14.738Z","dependency_job_id":null,"html_url":"https://github.com/psliwka/vim-smoothie","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/psliwka/vim-smoothie","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psliwka%2Fvim-smoothie","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psliwka%2Fvim-smoothie/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psliwka%2Fvim-smoothie/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psliwka%2Fvim-smoothie/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/psliwka","download_url":"https://codeload.github.com/psliwka/vim-smoothie/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psliwka%2Fvim-smoothie/sbom","scorecard":{"id":748271,"data":{"date":"2025-08-11","repo":{"name":"github.com/psliwka/vim-smoothie","commit":"df1e324e9f3395c630c1c523d0555a01d2eb1b7e"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.4,"checks":[{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/lint.yml:10: update your workflow using https://app.stepsecurity.io/secureworkflow/psliwka/vim-smoothie/lint.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/lint.yml:11: update your workflow using https://app.stepsecurity.io/secureworkflow/psliwka/vim-smoothie/lint.yml/master?enable=pin","Info:   0 out of   1 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/lint.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}}]},"last_synced_at":"2025-08-22T19:31:25.373Z","repository_id":38709966,"created_at":"2025-08-22T19:31:25.373Z","updated_at":"2025-08-22T19:31:25.373Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279015357,"owners_count":26085686,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-13T02:00:06.723Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["neovim","smooth-scrolling","vim"],"created_at":"2024-07-31T16:02:20.978Z","updated_at":"2025-10-13T13:50:09.165Z","avatar_url":"https://github.com/psliwka.png","language":"Vim script","funding_links":[],"categories":["Vim Script","Vim script"],"sub_categories":[],"readme":"vim-smoothie: Smooth scrolling for Vim done right🥤\n===================================================\n\nThis (neo)vim plugin makes scrolling nice and _smooth_. Find yourself\ncompletely lost every time you press `Ctrl-D` or `Ctrl-F`? You might want to\ngive _vim-smoothie_ a try!\n\n![scrolling demo](demo.gif)\n\nRequirements\n------------\n\nYou will need reasonably new Vim or Neovim. Vim 8.2.1978+ or Neovim 0.3+ should\ndo the trick.\n\nAdditionally, since this plugins due to its nature causes frequent screen\nredraws, it is recommended to use a fast terminal emulator, ideally with GPU\nacceleration. I personally recommend [kitty].\n\nInstallation\n------------\n\nInstall the plugin using your favorite plugin manager, for example [vim-plug]:\n```vim\nPlug 'psliwka/vim-smoothie'\n```\n\nCustomization\n-------------\n\n_vim-smoothie_ aims for sane defaults, and should work out-of-the-box for most\nusers. In some cases, however, you might want to customize its behavior, by\nadjusting one or more of the following variables in your `vimrc`:\n\n* `g:smoothie_enabled`: Set it to `0` (or `v:false`) to disable vim-smoothie.\n  Useful for temporary disabling the plugin, f.ex. when running Vim over\n  extremely slow connections.\n* `g:smoothie_no_default_mappings`: If true, will prevent the plugin from\n  overriding default scrolling keys (`Ctrl-D` and friends). You are then\n  supposed to bind keys you like by yourself. Example mapping:\n  ```vim\n  nnoremap \u003cunique\u003e \u003cC-D\u003e \u003ccmd\u003ecall smoothie#do(\"\\\u003cC-D\u003e\") \u003cCR\u003e\n  vnoremap \u003cunique\u003e \u003cC-D\u003e \u003ccmd\u003ecall smoothie#do(\"\\\u003cC-D\u003e\") \u003cCR\u003e\n  ```\n  Note that the same key is mapped twice (with `nnoremap` and `vnoremap`) to\n  make the binding work in Visual mode too.\n* `g:smoothie_remapped_commands`: Instead of disabling all mappings with\n  `g:smoothie_no_default_mappings`, you can disable them selectively by\n  overriding this list with a subset of commands that you'd like to map.\n  Alternatively, you can add extra commands here if you fell extra adventurous\n  ;)\n* `g:smoothie_experimental_mappings`: Set this to true to enable additional,\n  experimental mappings (currently `gg` and `G`). It is not recommended to\n  enable them unless you're ready to fight potential bugs.\n\nThe plugin also respects native Vim settings affecting scrolling behavior, such\nas `scrolloff`, `belloff`, `startofline`, etc.\n\nAlternatives, a.k.a. why create yet another plugin\n--------------------------------------------------\n\nThere are many other Vim plugins attempting to resolve the same problem. The\nmost interesting one is [sexy_scroller.vim], which covers way more movement\ncommands than vim-smoothie will ever do. Unfortunately, it also suffers from\nfrequent visual artifacts, such as erratic screen jumps and animation\njittering, impairing visual orientation and breaking the user experience. Many\nof these bugs are nearly impossible to fix due to the plugin's internal design.\nHence, vim-smoothie was born, focusing on stable, bug-free, _smooth_\nexperience, at a cost of smaller feature set.\n\nThe table below summarizes key differences between vim-smoothie and three other\npopular smooth scrolling plugins I've used in the past: [sexy_scroller.vim],\n[comfortable-motion.vim], and [vim-smooth-scroll].\n\n|  | vim-smoothie | [sexy_scroller.vim] | [comfortable-motion.vim] | [vim-smooth-scroll] |\n|---|:---:|:---:|:---:|:---:|\n| Supported commands | All window scrolling commands (`^D` `^U` `^F` `^B` `zz` `zt` `zb` etc.), `gg`\u003csup\u003e1\u003c/sup\u003e `G`\u003csup\u003e1\u003c/sup\u003e | Almost all window and cursor movement commands ❤️ | `^D` `^U` `^F` `^B` | `^D` `^U` `^F` `^B` |\n| Erratic screen jumps and jittering now and then | Nope | A lot💔 | Nope | Nope |\n| Scrolling distance is proportional to window height | ✅ | ✅ | ❌ | ✅ |\n| Easing out (soft-stop) | ✅ | ✅ | ✅ | ❌ |\n| Supports setting `[count]` before movement (f.ex. `3^F` to scroll down 3 pages) | ✅ | ✅ | ❌ | ❌ |\n| Respects `scroll` and `startofline` options | ✅ | ✅ | ❌ | ❌ |\n| `^D` and `^U` behave correctly near buffer ends, just moving the cursor instead of scrolling the window | ✅ | ✅ | ❌ | ❌ |\n| Terminal bell support | ✅ | ✅ | ❌ | ❌ |\n| Pun in name | ✅ | ✅ | ❌ | ❌ |\n\nNotes:\n1. these commands are experimental and disabled by default\n\nCredits\n-------\n\nCreated by [Piotr Śliwka](https://github.com/psliwka). Improved by\n[Klas Segeljakt](https://github.com/segeljakt) and\n[Subhaditya Nath](https://github.com/subnut).\n\nMany thanks to authors of [vim-smooth-scroll], [comfortable-motion.vim], and\n[sexy_scroller.vim] for inspiration!\n\nLicense\n-------\n\n[MIT](LICENSE)\n\n[vim-plug]: https://github.com/junegunn/vim-plug\n[vim-smooth-scroll]: https://github.com/terryma/vim-smooth-scroll\n[comfortable-motion.vim]: https://github.com/yuttie/comfortable-motion.vim\n[sexy_scroller.vim]: https://github.com/joeytwiddle/sexy_scroller.vim\n[kitty]: https://github.com/kovidgoyal/kitty\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpsliwka%2Fvim-smoothie","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpsliwka%2Fvim-smoothie","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpsliwka%2Fvim-smoothie/lists"}