Configurations

Configurations

Lazyman Supported Configurations

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

All of the supported Lazyman Neovim configurations can be managed using the lazyman command interactive menu interface. The lazyman menu is presented by invoking lazyman without arguments after the initial bootstrap process is complete. Lazyman Neovim configurations can also be managed with lazyman command line operations.

Currently over 100 popular Neovim configurations are supported in the following configuration categories:

In addition to the supported configuration categories, Custom configurations can be installed and initialized using lazyman command line arguments.

Base configurations

The Lazyman “Base” Neovim configurations are well tested, full featured Neovim configurations that provide an excellent base starting point for exploring the features of lazyman and the wealth of Neovim configuration possibilities.

All “Base” Neovim configurations can be installed and initialized with lazyman -B.

Lazyman “Base” Neovim configurations

  • Lazyman
  • Abstract
    • Preconfigured Neovim as IDE (see the Abstract website)
    • Install and initialize with lazyman -g
  • AstroNvimPlus
    • Install and initialize with lazyman -a
    • An example AstroNvim community plugins configuration is added
  • Basic IDE
    • Maintained by LunarVim, this is a descendent of “Neovim from Scratch”
    • All plugins are pinned to known working versions
    • Install and initialize with lazyman -j
  • Ecovim
    • Install and initialize with lazyman -e
    • Tailored for frontend development with React and Vue.js
  • LazyVim
  • LunarVim
  • MagicVim
    • Custom Neovim configuration designed to be light and fast
    • LSP, Treesitter & Code Completion all work out of the box
    • Auto install when you open a file type that doesn’t have code completion for it yet
    • Uses Packer plugin manager, installs in ~/.config/nvim-MagicVim
    • Install and initialize with lazyman -m
  • NvChad
  • SpaceVim
    • SpaceVim started in December 2016, mature and well supported
    • Standard SpaceVim install uses curl:
      • curl -sLf https://spacevim.org/install.sh | bash
    • Lazyman custom SpaceVim configuration installed in ~/.SpaceVim.d/
    • Install and initialize using Lazyman with lazyman -s

Language configurations

In addition to the base Neovim configurations listed above, lazyman can install and initialize several “Language” Neovim configurations. These can be used as programming or document format specific Neovim configurations. The Language category configurations either employ a specific language or target specific language(s).

[Note:] The Language category does not include all supported Lazyman Neovim configurations with programming language support. In fact, most Neovim configurations support several programming languages. The Language category simply serves as a convenience to get started exploring language support.

All of the “Language” configurations can be installed and initialized with the command lazyman -L all. Individual “Language” configurations can be installed with the -L lang option.

Lazyman “Language” Neovim configurations

  • AlanVim
    • Oriented toward Python development
    • Install and initialize with lazyman -L AlanVim
  • Allaman
    • One of the inspirations for Lazyman
    • Excellent support for Python, Golang, Rust, YAML, and more
    • Install and initialize with lazyman -L Allaman
  • CatNvim
    • Included in the Language category as the configuration is written in C
    • Yes, this is a Neovim configuration written in the C programming language
    • CatNvim is a LazyVim based configuration
    • Install and initialize with lazyman -L CatNvim
  • Cpp
    • NvChad based Neovim config with C++ formatting, debugging, and diagnostics
    • Dreams of Code video tutorial
    • Install and initialize with lazyman -L Cpp
  • Go
    • NvChad based Neovim config with Go formatting, debugging, and diagnostics
    • Dreams of Code video tutorial
    • Install and initialize with lazyman -L Go
  • Go2one
    • Neovim Go development environment that does not touch standard Neovim configuration folders
    • The lazyman install does not use the go2one script
    • Install and initialize with lazyman -L Go2one
  • Insis
    • Out-of-the-box Neovim IDE solution with simple development environment setup
    • Install and initialize with lazyman -L Insis
  • Knvim
    • Targets Python, Bash, LaTeX, Markdown, and C/C++
    • See the Knvim Config Cheat Sheet
    • Install and initialize with lazyman -L Knvim
  • LaTeX
  • LazyIde
    • LazyVim IDE config for Neovim
    • Install and initialize with lazyman -L LazyIde
  • LunarIde
    • LunarVim config based on Christian Chiarulli’s
    • Java, Python, Lua, Go, JavaScript, Typescript, React, and Rust IDE
    • Install and initialize with lazyman -L LunarIde
  • LvimIde
    • Not to be confused with LunarVim, this is a standalone Neovim configuration
    • Modular configuration with LSP support for 60+ languages
    • Debug support for c, cpp, dart, elixir, go, haskell, java, javascript/typescript, lua, php, python, ruby, rust
    • Install and initialize with lazyman -L LvimIde
  • Magidc
    • Java, Python, Lua, and Rust IDE
    • Install and initialize with lazyman -L Magidc
  • Nv
    • LazyVim based Neovim configuration
    • Andreas Gerlach develops smart farming tech and maintains the Sway edition of Manjaro-arm
    • Install and initialize with lazyman -L Nv
  • NV-IDE
    • Configuration oriented for web developers (rails, ruby, php, html, css, SCSS, javascript)
    • Install and initialize with lazyman -L NV-IDE
  • Orange
    • Modern Neovim configuration for coding React and TypeScript
    • Install and initialize with lazyman -L Orange
  • Python
    • NvChad based Neovim config with Python formatting, debugging, and diagnostics
    • Dreams of Code video tutorial
    • These features are included in the Base NvChad custom add-on (lazyman -c)
    • Install and initialize lazyman -L Python
  • Rust
    • NvChad based Neovim config with Rust formatting, debugging, and diagnostics
    • Dreams of Code video tutorial
    • Install and initialize with lazyman -L Rust
  • SaleVim
    • Salesforce optimized IDE with custom features for editing Apex, Visualforce, and Lightning code
    • Install and initialize with lazyman -L SaleVim
  • Shuvro
    • Significantly improved fork of Abouzar Parvan’s advanced LunarVim config
    • Install and initialize with lazyman -L Shuvro
  • Webdev
    • LazyVim based config for web developers
    • JavaScript, Typescript, React, and Tailwind CSS support
    • Install and initialize with lazyman -L Webdev

Personal configurations

In addition to the base and language Neovim configurations listed above, lazyman can install and initialize several “Personal” Neovim configurations. These are used as personal Neovim configurations, so there are no guarantees made about stability or compatibility. Each supported personal configuration uses some interesting approach and provides significant value making them worthy of study, exploration, and possible use in tailoring your own configuration.

All of the ‘Personal’ configurations can be installed and initialized with the command lazyman -W. Individual ‘Personal’ configurations can be installed with the -w conf option.

Lazyman “Personal” Neovim configurations

  • Adib
    • Personal Neovim configuration of Adib Hanna
    • Tips, distros, and configuration demo video
    • Install and initialize with lazyman -w Adib
  • Ahsan
    • Personal Neovim configuration of Ahsan Habib
    • Install and initialize with lazyman -w Ahsan
  • Artur
    • Personal Neovim configuration of Artur Gomes
    • Install and initialize with lazyman -w Artur
  • Beethoven
    • Personal Neovim configuration of mechanical engineering student Alexander Vazquez
    • lazyman -w Beethoven
  • Brain
    • Well structured personal config based on the KISS principle
    • lazyman -w Brain
  • Charles
    • Well structured lazy config with several setup scripts and a Wiki
    • Install and initialize with lazyman -w Charles
  • Chokerman
    • Personal Neovim configuration of Github user justchokingaround
    • Install and initialize with lazyman -w Chokerman
  • Craftzdog
    • Takuya Matsuyama’s Neovim configuration
    • Install and initialize with lazyman -w Craftzdog
  • Daniel
    • LunarVim based config of Daniel Vera Gilliard
    • Install and initialize with lazyman -w Daniel
  • Dillon
    • Author of tsc.nvim, asynchronous TypeScript type-checking
    • Install and initialize with lazyman -w Dillon
  • Elianiva
    • Personal Neovim configuration of Dicha Zelianivan Arkana
    • lazyman -w Elianiva
  • Elijah
    • Personal Neovim configuration of Elijah Manor
    • lazyman -w Elijah
  • Enrique
    • Personal Neovim configuration of Enrique Mejidas
    • lazyman -w Enrique
  • Jdhao
    • Modern Neovim configuration with full support for Python, Lua, C++, Markdown, LaTeX, and more
    • lazyman -w Jdhao
  • Kristijan
    • Personal Neovim configuration of Kristijan Husak, author of several Neovim plugins including orgmode and vim-dadbod-ui
    • lazyman -w Kristijan
  • Heiker
    • Neovim config of Heiker Curiel, author of lsp-zero
    • Install and initialize with lazyman -w Heiker
  • J4de
    • Personal Neovim configuration of Jade Fox
    • lazyman -w J4de
  • Josean
  • JustinLvim
    • LunarVim based Neovim configuration by Justin Angeles
    • Install and initialize with lazyman -w JustinLvim
  • JustinNvim
  • Kodo
    • Personal Neovim configuration of chadcat, a high school student with no life
    • Kodo is a Neovim configuration that looks good and is fast (startuptime < 0.035s)
    • Install and initialize with lazyman -w Kodo
  • LamarVim
    • Personal Neovim configuration of Cassio Lamarck
    • Install and initialize with lazyman -w LamarVim
  • Lukas
    • Packer based personal Neovim configuration of Lukas Reineke, author of many excellent Neovim plugins
    • Requires an externally installed lua-language-server and efm-langserver
    • Install and initialize with lazyman -w Lukas
  • Maddison
    • Personal Neovim configuration of Maddison Hellstrom
    • Author of incline.nvim floating statuslines, SchemaStore.nvim JSON schemas, mapx.nvim better keymaps
    • Install and initialize with lazyman -w Maddison
  • Metis
    • Neovim config by the creator of MetisLinux and Ewm
    • Install and initialize with lazyman -w Metis
  • Mini
    • Uses the mini.nvim library
    • Personal configuration of the mini.nvim author
    • Install and initialize with lazyman -M
  • ONNO
    • One of the primary inspirations for Lazyman
    • Install and initialize with lazyman -w ONNO
  • OnMyWay
    • The personal Neovim configuration of Richard Ariza
    • Install and initialize with lazyman -w OnMyWay
  • Optixal
    • Hybrid Neovim config for developers with a functional yet aesthetic experience
    • Uses a combination of vimscript and lua with the vim-plug plugin manager
    • Install and initialize with lazyman -w Optixal
  • Orhun
    • Personal AstroNvim based Neovim configuration of open source developer Orhun Parmaksiz
    • Install and initialize with lazyman -w Orhun
  • Primeagen
    • Packer based config from scratch by ThePrimeagen”
    • Install and initialize with lazyman -w Primeagen
  • Rafi
    • Extensible Neovim configuration
    • Install and initialize with lazyman -w Rafi
  • RNvim
    • Personal Neovim configuration of Github user RoryNesbitt
    • Install and initialize with lazyman -w RNvim
  • Roiz
    • Just a random Neovim config found on Github, works well
    • Install and initialize with lazyman -w Roiz
  • SeniorMars
    • The popular Neovim configuration of SeniorMars
    • Install and initialize with lazyman -w SeniorMars
  • Simple
  • Slydragonn
  • Spider
    • AstroNvim based configuration with animated status bar and smooth scroll
    • Introductory video
    • Install and initialize with lazyman -w Spider
  • Traap
  • Wuelner
    • Wuelner’s Neovim setup follows a well-defined philosophy governed by coherence and minimalism
    • Install and initialize with lazyman -w Wuelner
  • xero
    • personal neovim configuration of xero harrison
    • xero is a fine example, as are many here, of the unix greybeard
    • install and initialize with lazyman -w xero
  • Xiao
    • Personal Neovim configuration of XiaoZhang
    • Install and initialize with lazyman -w Xiao

Starter configurations

The “Starter” Neovim configurations include Basic, Kickstart, NvPak, Modern, PDE, and those provided by VonHeikemen, the author of LSP Zero.

All of the “Starter” configurations can be installed and initialized with the command lazyman -X. Individual “Starter” configurations can be installed with the -x conf option.

Lazyman “Starter” Neovim configurations

  • AstroNvimStart
    • Default AstroNvim example configuration
    • Install and initialize with lazyman -x AstroNvimStart
  • Barebones
    • Starter bare bones LazyVim config by Traap with video introduction
    • Install and initialize with lazyman -x Barebones
  • Basic
    • Starter config by the author of NvChad with video tutorial
    • Install and initialize with lazyman -x Basic
  • CodeArt
    • Use Neovim as general purpose IDE
    • Install and initialize with lazyman -x CodeArt
  • CosmicNvim
    • Install Node.js, prettierd, and eslint_d
    • Install and initialize with lazyman -x Cosmic
  • Ember
    • Dan is a computer science student at Arizona State University
    • Install and initialize with lazyman -x Ember
  • Fennel
    • An opinionated configuration reminiscent of Doom-Emacs, written in Fennel
    • Install and initialize with lazyman -x Fennel
  • Kickstart
    • Popular starting point, small, single file, well documented, modular
    • Install and initialize with lazyman -k
  • KickstartPython
    • Kickstart configuration tailored for use with Python
    • Install and initialize with lazyman -x KickstartPython
  • nvim2k
  • NvPak
    • PaK in Farsi means pure, something that is in its purest form
    • Install and initialize with lazyman -x NvPak
  • HardHacker
    • A theme-driven modern Neovim configuration
    • Install and initialize with lazyman -x HardHacker
  • JustinOhMy
    • Full featured starter LazyVim based Neovim configuration by Justin Angeles
    • Justin has created a YouTube video describing this config
    • Install and initialize with lazyman -x JustinOhMy
  • Modern
    • Configure Neovim as a modernized development environment
    • Details described in an excellent Medium article
    • Install and initialize with lazyman -x Modern
  • PDE
    • Configure Neovim as a Personalized Development Environment (PDE)
    • Install and initialize with lazyman -x pde
  • Kabin
    • One of the AstroNvim “Black Belt” example advanced configurations
    • lazyman -x Kabin
  • Micah
    • One of the AstroNvim “Black Belt” example advanced configurations
    • lazyman -x Micah
  • Normal
    • Based on AstroNvim with additional features
    • Install and initialize with lazyman -x Normal
  • Rohit
  • Scratch
    • Jumping-off point for new Neovim users or those who have declared config bankruptcy
    • Install and initialize with lazyman -x Scratch
  • SingleFile
    • A clean, organized pre-configured Neovim configuration guide in a single init.lua
    • Install and initialize with lazyman -x SingleFile

VonHeikemen Starter configurations

  • BasicLsp
    • Example lua configuration showing one way to setup LSP servers without plugins
    • Install and initialize with lazyman -x BasicLsp
  • BasicMason
    • Minimal setup with mason.nvim
    • Install and initialize with lazyman -x BasicMason
  • LspCmp
    • Minimal setup with nvim-lspconfig and nvim-cmp
    • Install and initialize with lazyman -x LspCmp
  • Extralight
    • Single file lightweight configuration focused on providing basic features
    • Install and initialize with lazyman -x Extralight
  • Minimal
    • Small configuration without third party plugins
    • Install and initialize with lazyman -x Minimal
  • Modular
    • Same as StartMason but everything is split in modules
    • Install and initialize with lazyman -x Modular
  • StartBase
    • Small configuration that includes a plugin manager
    • Install and initialize with lazyman -x StartBase
  • Opinionated
    • Includes a combination of popular plugins
    • Install and initialize with lazyman -x Opinion
  • StartLsp
    • Configures the built-in LSP client with autocompletion, based on Opinionated
    • Install and initialize with lazyman -x StartLsp
  • StartMason
    • Same as StartLsp but uses mason.nvim to install language servers
    • Install and initialize with lazyman -x StartMason

Custom configurations

Lazyman includes support for Custom Neovim configurations. To install and initialize a Neovim configuration not supported out-of-the-box by Lazyman, use the -C url and -N nvimdir options to lazyman. After the installation and initialization completes, set the NVIM_APPNAME environment variable to use the newly created Neovim configuration:

1
export NVIM_APPNAME="<nvimdir>"

Where <nvimdir> is the argument provided to -N above.

For example, to install and initialize the Packer based Neovim configuration hosted at https://github.com/VapourNvim/VapourNvim and place it in ~/.config/nvim-VapourNvim, execute the command:

1
2
3
lazyman -C https://github.com/VapourNvim/VapourNvim -N nvim-VapourNvim -P
export NVIM_APPNAME="nvim-VapourNvim"
nvim

Sometimes people place their Neovim configuration in a repository subdirectory along with other configurations in a dotfiles repo. To retrieve only the Neovim configuration subdirectory in such a repository, use the -b branch and -D subdir arguments to lazyman along with -C url and -N nvimdir. If no -b branch is provided then the default git branch is assumed to be master. For example, to install and initialize the Neovim configuration hosted at https://github.com/alanRizzo/dot-files in the subdirectory nvim with default branch main, place it in ~/.config/nvim-AlanVim, and initialize it with Packer:

1
lazyman -b main -C https://github.com/alanRizzo/dot-files -D nvim -N nvim-AlanVim -P

Note the -b main argument in this Lazyman command. When specifying a subdirectory of a repository with -D <subdir> it is necessary to also provide the default branch of the repository if not master.

Custom Neovim configurations may require additional setup work. Often a custom Lazyman configuration will appear to work without issue but contain references to ~/.config/nvim/ in its configuration files. For example, a configuration’s dashboard may contain a reference to ~/.config/nvim/init.lua. References like this can be fixed so the configuration is relocatable by doing something like the following in Lua:

1
local config_path = vim.fn.stdpath("config") .. "/init.lua"

Another example custom Neovim configuration not yet supported by Lazyman is the NvChad based Vimacs configuration. The Vimacs Neovim configuration can be installed with the command:

1
lazyman -V https://github.com/UTFeight/vimacs -D custom -N nvim-Vimacs

Note the -V url argument. This indicates to lazyman that this is an NvChad based configuration and should be installed accordingly. The -D custom argument indicates that the NvChad custom configuration resides in the custom subdirectory of the repository.

Custom Neovim configurations will be displayed and available in subsequent runs of lazyman in the Lazyman Menu System.

An excellent list of preconfigured Neovim configurations is available at the Awesome Neovim Repository. Many of these can be easily installed and initialized using lazyman -b <branch> -C <url> -N <nvimdir> ....

Feel free to open an issue at https://github.com/doctorfree/nvim-lazyman/issues to help tackle any problems installing or initializing Neovim configurations with Lazyman.

Custom configuration patches

If you encounter a Neovim configuration that does not cleanly initialize with lazyman it is often possible to make a few minor changes to the configuration to get it working. Lazyman supports custom configuration patches that are applied during initialization of a configuration.

The ~/.config/nvim-Lazyman/scripts/patches/ directory contains patches to Neovim configurations applied after cloning the repo with lazyman.

The patch file for a configuration must be named <Name>.patch where <Name> is the name of the configuration folder in ~/.config/.

Some Neovim configurations do not initialize cleanly using lazyman and modifications to the configuration files may be necessary. In this case it is possible to generate a patch file for the config, place it here, and re-run lazyman to install and initialize that configuration.

The patch should be created from the top of the configuration directory after making the necessary changes and backing up the original file(s).

For example, the Neovim configuration by 3rd contains references to a custom tree-sitter grammar and does not initialize cleanly with lazyman. After commenting out these references a patch can be created for this config with:

1
2
3
diff -Naur lua/modules/language-support/tree-sitter.lua.orig \
           lua/modules/language-support/tree-sitter.lua \
           > ~/.config/nvim-Lazyman/scripts/patches/nvim-3rd.patch

Subsequently, running:

1
lazyman -C https://github.com/3rd/config -D home/dotfiles/nvim -N nvim-3rd

will produce a patched nvim-3rd initialized Neovim configuration.