Git Product home page Git Product logo

slowly.nvim's Introduction

slowly.nvim ๐Ÿข

Note: I am no longer using slowly. It does work, but I have moved on to using Nix and Home Manager instead.

Slowly is a Neovim plugin manager for people who value simplicity over speed. It is neither blazingly fast nor the most advanced solution, but rather the bare minimum of what I need. Slowly handles installing, updating, and reinstalling plugins using git. It does not do anything fancy. I used packer.nvim for awhile, and if you want the kitchen sink included, you should use Packer instead.

Here's a friendly comparison of Slowly to other plugin managers:

Advantages Disadvantages
You can acually understand what is happening Plugin works slowly
Simple and easy to use Only basic features
Few dependencies, install is copying one file No flashy animations

Requirements

  • A Unix-like environment
  • Neovim v0.8.0 or newer (or older?)
  • git v2.38.0 or newer (or older?)
  • GNU tar v1.34 or newer (or older? or BSD?)
  • GNU gzip v1.12 or newer (or older? or BSD?)

Installing

Copy the ./lua/slowly.lua file from this repository to ~/.config/nvim/lua/slowly.lua. Or, put this repository somewhere on your runtime path. Then write an ~/.config/nvim/init.lua like this:

local example_condition = false

require('slowly').setup({ 
  disabled_builtins = {
    'netrw',
    'netrwPlugin',
    'netrwSettings',
    'netrwFileHandlers'
  },
  plugins = {
    {url = 'https://github.com/nvim-lua/plenary.nvim',    start = true},
    {url = 'https://github.com/elihunter173/dirbuf.nvim', start = true},
    {url = 'https://github.com/nat-418/bufala.nvim'},
    {url = 'https://github.com/nat-418/tabbot.nvim'}
  }
})

require('dirbuf').setup {
  show_hidden = false,
  sort_order  = 'directories_first',
  write_cmd   = 'DirbufSync -confirm',
}

if example_condition then
  vim.cmd.packadd('bufala.nvim'); require('bufala').setup()
  vim.cmd.packadd('tabbot.nvim'); require('tabbot').setup()
end

In this example we want to replace the old vim default plugin netrw with the excellent dirbuf.nvim, and we want dirbuf to be loaded automatically on startup along with plenaryโ€”a common dependency required by other plugins. We also install a few optional plugins and then explicitly load them only when example_condition is met.

Usage

Slowly provides a single command :Slowly with a few subcommands:

  • :Slowly list to show what is currently installed.
  • :Slowly install to git clone plugins configured in the setup options.
  • :Slowly update to git pull plugins configured in the setup options.
  • :Slowly save to make a tarball of installed plugins.
  • :Slowly restore to delete all plugins and reload from the save tarball.
  • :Slowly clean to remove installed plugins not listed in setup options.
  • :Slowly reinstall to delete all configured plugins and clone them again.

Note: :Slowly update will automatically :Slowly save before git pull-ing. That way if something bad happens as a result of the update, you can easily do a :Slowly restore and quickly get back to a sane state. Only one save tarball can exist at a time. If you need more advancded snapshotting and backups, ask your filesystem.

Configuration

Slowly's setup function can accept the following configuration options:

  • disabled_builtins Builtin Neovim plugins to disable
  • install_path defaults to ~/.local/share/nvim/site/pack/slowly/
  • save_path defaults to ~/.cache/nvim/slowly/
  • plugins is a list of plugin tables with the following values:
    • url required field of the fully-qualified git URL string
    • start optional boolean to direct plugin to install in start/*
    • checkout optional string for a tag, branch, or commit to checkout
    • run optional string of a shell script to run after git commands

Note: by default, all plugins install to opt/.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.