Lazyman Neovim Configuration Manager
The Lazyman project can be used to install, initialize, and manage multiple Neovim configurations. Over 100 popular Neovim configurations are supported.
NEWS! Lazyman
is now available as a Kasm Workspace by adding https://doctorfree.github.io/kasm-registry/
as a Kasm 3rd party registry and installing the Neovim
or Deluxe
workspace in your Kasm instance.
Lazyman provides a character-based menu interface as well as a weath of command line options. The Lazyman main menu looks like this:
Overview
Follow the Installation instructions to bootstrap Lazyman. Once Lazyman is installed, execute the lazyman
command to manage Neovim configurations. The lazyman
command is located in $HOME/.local/bin/lazyman.
The two primary features of the Lazyman project are the lazyman
command and the nvims
shell function. The lazyman
command provides a menu interface and command line options to install, initialize, and manage multiple Neovim configurations. The nvims
shell function dynamically generates a fuzzy searchable menu of Neovim configurations from which to select. The selected configurations can be opened in Neovim, removed, or a configuration information document can be viewed.
The nvims Neovim configuration fuzzy selector:
More info on the nvims
and neovides
shell functions can be found in the nvims fuzzy selector article , in the nvims man page with man nvims, with the command nvims -U, or in Neovim using the Lazyman configuration with :h Nvims.
The lazyman
command separates Neovim configurations into 5 categories: Base
Language
Personal
Starter
and Custom
. The Base
category consists of well tested Neovim configurations and distributions, all of which provide significant value. The Language
category includes Neovim configurations tailored for a specific programming or document format language. The Personal
category includes personal Neovim configurations that provide significant value or demonstrate some cool features. Configurations in the Personal
category are not necessarily intended for public use, these repositories are maintained for the personal use of the authors but are included here for their value. The Starter
category includes Neovim configurations tailored to serve as a starting point for developing your own Neovim configuration. These include the popular Neovim Kickstart
configuration, a Modern
Neovim config, the PDE
personal development environment config, and the Neovim configurations provided by the nvim-starter project. The Custom
category includes any additional Neovim configurations installed and initialized with lazyman
by the end-user using the C url
and N nvimdir
options.
In addition, Lazyman installs and initializes the Lazyman Neovim configuration, a richly configured Neovim environment using Lua, Lazy, and Mason to support highlighting, completion, diagnostics, and more for many programming languages.
The installation and initialization of Neovim configurations are placed in separate directories and managed using the NVIM_APPNAME
environment variable.
Note that a full installation and initialization of all supported Neovim configurations, plugins, language servers, formatters, linters, and tools will consume over 20GB of disk space.
The lazyman
command is installed as local/bin/lazyman
and can be used to install, initialize, remove, and manage multiple Neovim configurations.
Requirements and Installation
See the Install section for details on both Requirements and Installation.
Supported configurations
See the Configurations section for details on Supported Configurations.
Features
See the Features section for details on Lazyman Features.
Usage
See the Usage section for details on Lazyman Usage.
Motivation
I’m a lazy man. I wanted to try out a bunch of nifty looking Neovim configurations but I didn’t want to spend a lot of time setting each of them up and managing them. Instead, I spent a lot of time writing an install/initialize/manage tool I could use: lazyman
Although the primary motivation for creating this project was to provide an easy way to try out various Neovim configurations, lazyman
can be used to setup and manage Neovim configurations tailored for specific purposes. A Neovim configuration for work, one for school, one for Python development, another for git repository maintenance and markdown editing, one with language servers and debugging tools, one for your mom.
It’s also pretty interesting and educational to see how some of these Neovim Wizards setup their configurations.
Inspiration
Lazyman was inspired by several Neovim distributions and configurations including:
Some of these distributions, like the work of Michael Peter, are released under an MIT license and I was able to copy directly configuration or initialization code. Others, like the work of Marc Jakobi, are released under a more restrictive license and I was only able to use these as reference but still a valuable aid. I copied my own previous work liberally.
Thanks everybody!
Info
See the Info section for detailed information on Lazyman supported configurations.
Notes
See the Notes article for details on Lazyman Notes.
Removal
See the Removal section of Install for details on Lazyman Configuration Removal.
Known limitations and troubleshooting
See the article Known Limitations and Troubleshooting for details on limitations and debugging.