Post

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:

Lazyman

See what’s new

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:

nvims nvims

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.

Connect

domain reddit github gitlab twitter youtube linkedin instagram mastodon wikipedia