Skip to content

Lazyman Version 3.1.4r3

Compare
Choose a tag to compare
@doctorfree doctorfree released this 24 Mar 16:25
· 105 commits to main since this release

Lazyman Release Notes

New Features

  • Support for Ubuntu 23.04 and greater
  • Use fzf and lsd to provide a preview in nvims shell function

This major new release of lazyman supports over 100 Neovim configurations. The nvim-Lazyman Neovim configuration options and enabled plugins can be managed through the lazyman command menus. The Lazyman initialization defaults to using the native package manager rather than Homebrew to install Neovim dependencies and tools. Native package managers are supported on Debian based platforms (e.g. Ubuntu), RPM based platforms (e.g. Fedora), Arch Linux, Alpine Linux, SUSE Linux, and Void Linux. To use Homebrew rather than the native package manager, use lazyman -h ... when initializing the system. Homebrew is the default on macOS and used elsewhere if no supported native package manager is found.
Version 3.1 adds support for 3 namespaces in the Lazyman Neovim configuration - ecovim (the default), free (the original), and onno. All namespaces can be managed via menus (lazyman -F).

All that is needed to bootstrap Lazyman is the lazyman.sh script. Download and execute to get started:

git clone https://github.com/doctorfree/nvim-lazyman $HOME/.config/nvim-Lazyman
$HOME/.config/nvim-Lazyman/lazyman.sh

See below for detailed Installation instructions to bootstrap Lazyman. Once Lazyman is installed, execute the lazyman command to manage Neovim configurations. The lazyman command is located in ~/.local/bin/lazyman.

The Lazyman project can be used to install, initialize, manage, and explore multiple Neovim configurations. Currently over 100 popular Neovim configurations are supported in the following configuration categories:

Base Configs
Abstract AstroNvimPlus Basic IDE
Ecovim LazyVim LunarVim
MagicVim NvChad SpaceVim
Language Configs
AlanVim Allaman CatNvim Cpp Go Go2one Insis
Knvim LaTeX LazyIde LunarIde LvimIde Magidc Nv
NV-IDE Orange Python Rust SaleVim Shuvro Webdev
Personal Configs
Adib Ahsan Artur Beethoven Brain
Charles Chokerman Craftzdog Daniel Dillon
Elianiva Elijah Enrique Heiker J4de
Jdhao Josean JustinNvim Kodo Kristijan
LamarVim Lukas Maddison Metis Mini
OnMyWay ONNO Optixal Orhun Primeagen
Rafi RNvim Roiz SeniorMars Simple
Slydragonn Spider Traap Wuelner xero
Xiao
Starter Configs
AstroNvimStart Barebones Basic CodeArt CosmicNvim
Ember Fennel HardHacker JustinOhMy Kickstart
KickstartPython Kabin Micah Modern Normal
nvim2k NvPak PDE Rohit Scratch
SingleFile
VonHeikemen Starter Configs
BasicLsp BasicMason Extralight LspCmp Minimal
Modular Opinionated StartBase StartLsp StartMason

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.

The lazyman command is installed as ~/.local/bin/lazyman and can be used to install, initialize, remove, and manage multiple Neovim configurations.

Installation

The Lazyman installation process consists of two steps:

git clone https://github.com/doctorfree/nvim-lazyman $HOME/.config/nvim-Lazyman
$HOME/.config/nvim-Lazyman/lazyman.sh

These steps:

  1. Download the Lazyman Neovim configuration
  2. Initialize the Lazyman Neovim configuration which:
    1. Installs Homebrew if not already installed (macOS only)
    2. Installs the latest release version of Neovim if not already installed
    3. Installs language servers and tools for coding diagnostics
    4. Installs and initializes configured Neovim plugins

Lazyman installs Neovim if there is not already Neovim 0.9 or later installed and in the execution path. In addition, Lazyman installs Neovim dependencies, some language servers, and tools.

The installation of Neovim 0.9, language servers, and tools ensures a proper runtime environment. To avoid the installation of Neovim, language servers, and tools, execute lazyman -Z:

git clone https://github.com/doctorfree/nvim-lazyman $HOME/.config/nvim-Lazyman
$HOME/.config/nvim-Lazyman/lazyman.sh -Z

Note that circumventing the Neovim installation means that Neovim 0.9 must be installed in some other manner. Also, language servers and tools required by some Neovim configurations may not be present. However, some may prefer to handle the installation of Neovim 0.9, language servers, and tools on their own. In this case, the -Z option is your friend.

If, after initializing Lazyman with lazyman -Z, you wish to let Lazyman install Neovim 0.9, language servers and tools, then issue the command lazyman -I or choose the Install Tools lazyman menu option.

Bootstrap

To bootstrap the Lazyman Neovim configuration manager, the lazyman.sh script must be downloaded and executed. The download can be performed with git, curl, wget, copy/paste, or download the release artifact.

The recommended bootstrap procedure is with git:

Clone the repository with git and execute lazyman.sh:

git clone https://github.com/doctorfree/nvim-lazyman $HOME/.config/nvim-Lazyman
$HOME/.config/nvim-Lazyman/lazyman.sh

Alternatively, download the lazyman.sh script and execute it. For example, with curl:

curl -fsS https://raw.githubusercontent.com/doctorfree/nvim-lazyman/main/lazyman.sh > /tmp/lazyman.sh
chmod 755 /tmp/lazyman.sh
/tmp/lazyman.sh
rm -f /tmp/lazyman.sh

Once the lazyman.sh script has been downloaded and executed, subsequent Lazyman operations can be performed with the lazyman command found in ~/.local/bin/lazyman. The manual page can be viewed with man lazyman.

If you do not wish to use this automated installation and initialization method then manual installation and initialization is described below. Manual installation and initialization may be preferred by those who do not wish to upgrade Neovim to the latest version or by those who do not wish to use Homebrew.

Neovim 0.8 and earlier users, see the Neovim 0.8 section in the README for manual installation and initialization of nvim-Lazyman.

Neovim 0.9 and later users, see the Neovim 0.9) section in the README for manual installation and initialization of nvim-Lazyman.

Neovim 0.9 and later users can use the NVIM_APPNAME environment variable to control where Neovim looks for its configuration.

Postinstall

After installing and initializing lazyman, additional Neovim configurations can be installed and initialized using the lazyman command.

Run lazyman without any arguments to view an interactive menu system.

Removal

The lazyman command can be used to remove previously installed Neovim configurations with the -R command line option. For example, to remove a previously installed LazyVim configuration, its initialized plugins, state, and cache, execute the following command:

lazyman -l -R

To remove the nvim-Lazyman configuration and associated plugins, state, and cache:

lazyman -R -N nvim-Lazyman

All lazyman operations can be performed as a dry run with -n. For example, to see which LazyVim folders would be removed without removing any:

lazyman -n -l -R