The lazyman.sh script is located in
~/.config/nvim-Lazyman. It installs itself as
$HOME/.local/bin is in your execution
lazyman can be executed from the command line as simply
lazyman. The manual page can be viewed with
man lazyman. Within Neovim the
Lazyman help doc can be viewed with
lazyman command can be used to install and initialize multiple Neovim configurations. For example, to install and initialize the LazyVim starter configuration execute the command
lazyman -l. To install and initialize all supported Lazyman Neovim configurations execute
lazyman -A -y, to install just the “Base” Neovim configurations run
lazyman -B -y, the “Personal” configs with
lazyman -W -y, and the “Starter” configs with
lazyman -X -y.
All of these actions and more are available in the Lazyman Menu displayed when executing the
lazyman command with no arguments.
After installing and initializing Neovim configurations with
lazyman, easily explore various configurations with the
lazyman -E <config> … command.
To remove a Lazyman Neovim configuration execute
lazyman -r -N <nvimdir>. To remove the configuration and all its backups,
lazyman -R -N <nvimdir>. To remove all installed Lazyman Neovim configurations and their backups without being prompted to proceed, execute
lazyman -A -R -y.
lazyman command, when invoked without arguments or with the
-F menu argument, presents an interactive menu. The Lazyman menu system can be used to perform almost all of the functions available from the command line. Submenus are available to configure the Lazyman Neovim configuration as well as the
LazyIde Neovim configurations. These submenus use the get_conf.lua script to get and set Neovim configuration values from the command line.
The lazyman_config.sh script displays the Neovim configuration management menus. Usage of this script is as follows:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Usage: lazyman_config [-a] [-d] [-i] [-m menu] [-s name value] [-u] Where: -a lists all configuration names and exits -d specifies debug mode -i indicates initialize conditional plugin configurations and exit -m 'menu' specifies the menu to display (conf, form, lsp, plugins) -s 'name value' indicates set the value of configuration 'name' to 'value' if 'name' is 'get' then 'value' is the configuration name to get if 'name' is a table then 'value' is the table entry to set follow 'value' with 'enable' or 'disable' -u displays this usage message and exits Examples: Display the 'Formatters' menu lazyman_config -m form Set the theme to 'kanagawa' lazyman_config -s theme kanagawa Get the theme setting lazyman_config -s get theme Disable 'gopls' language server lazyman_config -s lsp_servers gopls disable
Use the Lazyman menu system to select and install/open/remove Neovim configurations managed by Lazyman. Enter a menu option number or keywords to select an option.
Keywords include: help, info, install, open, remove, search, update, quit
All shortcuts have single key support:
1 2 'h' = help, 'I' = info, 'i' = install, 'o' = open, 'q' = quit 'r' = remove, 's' = search, 'u' = update, 'c' = Lazyman Config menu
In the fuzzy selection dialogs, enter a few letters to fuzzy select from the options or use the
<Down-Arrow> keys to move through the options. Press
<Enter> to select the highlighted option.
Lazyman Neovim configurations are organized into categories. Configurations can be individually installed/removed or all configurations in a category can be acted on.
The main menu also provides options to install additional tools, enable debug mode, install the
Bob Neovim version manager, select the Neovim version to use, toggle the user interface between
Neovide, perform a Neovim health check, bring up the Lazyman Neovim Configuration menu, or generate a status report. In addition, an option exists to view the Lazyman manual.
The Lazyman Neovim configuration manager can also be used from the command line.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 Usage: lazyman [-A] [-a] [-B] [-b branch] [-c] [-d] [-E config] [-e] [-f path] [-F menu] [-g] [-i group] [-j] [-k] [-l] [-m] [-M] [-s] [-S] [-v] [-n] [-o] [-O name] [-p] [-P] [-q] [-Q] [-h] [-H] [-I] [-J] [-L lang] [-rR] [-C url] [-D subdir] [-N nvimdir] [-G] [-tT] [-U] [-V url] [-w conf] [-W] [-x conf] [-X] [-y] [-Y] [-z] [-Z] [-K conf] [-u] [health] [info] [init] [install [bob]] [open] [remove] [search] [status] [usage] Where: -A indicates install all supported Neovim configurations -a indicates install and initialize AstroNvimPlus Neovim configuration -B indicates install and initialize all 'Base' Neovim configurations -b 'branch' specifies an nvim-Lazyman git branch to checkout -c indicates install and initialize NvChad Neovim configuration -d indicates debug mode -D 'subdir' specifies the subdirectory of the repository to retrieve -e indicates install and initialize Ecovim Neovim configuration -E 'config' execute 'nvim' with 'config' Neovim configuration 'config' can be one of: 'lazyman', 'astronvim', 'kickstart', 'magicvim', 'ecovim', 'nvchad', 'lazyvim', 'lunarvim', 'spacevim' or any Neovim configuration directory in '~/.config' (e.g. 'lazyman -E lazyvim foo.lua') -f 'path' fix treesitter 'help' parser in config file 'path' -F 'menu' indicates present the specified Lazyman menu 'menu' can be one of: 'main', 'conf', 'lsp', 'format', 'plugin', 'lazyide', 'webdev' -G indicates no plugin manager, initialize with :TSUpdate -g indicates install and initialize Abstract Neovim configuration -j indicates install and initialize BasicIde Neovim configuration -k indicates install and initialize Kickstart Neovim configuration -l indicates install and initialize LazyVim Neovim configuration -m indicates install and initialize MagicVim Neovim configuration -M indicates install and initialize Mini Neovim configuration -o indicates input required during initialization -O 'name' indicates set Lazyman configuration to namespace 'name' 'name' can be one of: free onno ecovim -s indicates install and initialize SpaceVim Neovim configuration -v indicates install and initialize LunarVim Neovim configuration -S indicates show Neovim configuration fuzzy selector menu -n indicates dry run, don't actually do anything, just printf's -p indicates use vim-plug rather than Lazy to initialize -P indicates use Packer rather than Lazy to initialize -q indicates quiet install -Q indicates exit after performing specified action(s) -h indicates use Homebrew to install rather than native pkg mgr (Pacman is always used on Arch Linux, Homebrew on macOS) -H indicates compile and install the nightly Neovim build -i 'group' specifies a group to install/remove/update 'group' can be one of: astronvim kickstart lazyvim lunarvim nvchad packer plug -I indicates install all language servers and tools for coding diagnostics -J indicates install indicated repo as an AstroNvim custom configuration -L 'lang' indicates install the 'lang' Language configuration 'lang' can be one of: All AlanVim Allaman CatNvim Cpp Go Go2one Insis Knvim LaTeX LazyIde LunarIde LvimIde Magidc Nv NV-IDE Orange Python Rust SaleVim Shuvro Webdev -r indicates remove the previously installed configuration -R indicates remove previously installed configuration and backups -C 'url' specifies a URL to a Neovim configuration git repository -N 'nvimdir' specifies the folder name to use for the config given by -C -t indicates list all installed Lazyman Neovim configurations -T indicates list all uninstalled Lazyman Neovim configurations -U indicates update an existing configuration -V 'url' specifies an NvChad user configuration git repository -w 'conf' indicates install and initialize Personal 'conf' config 'conf' can be one of: All Adib Ahsan Artur Beethoven Brain Charles Chokerman Craftzdog Daniel Dillon Elianiva Elijah Enrique Kristijan Heiker J4de Josean JustinLvim JustinNvim Kodo LamarVim Lukas LvimAdib Maddison Metis Mini ONNO OnMyWay Optixal Orhun Primeagen Rafi RNvim Roiz SeniorMars Simple Slydragonn Spider Traap Wuelner xero Xiao -W indicates install and initialize all 'Personal' Neovim configurations -x 'conf' indicates install and initialize nvim-starter 'conf' config 'conf' can be one of: All 2k AstroNvimStart Barebones Basic CodeArt Cosmic Ember Fennel HardHacker JustinOhMy Kabin Kickstart Micah Normal NvPak Modern pde Rohit Scratch SingleFile BasicLsp BasicMason Extralight LspCmp Minimal StartBase Opinion StartLsp StartMason Modular -X indicates install and initialize all 'Starter' configs -y indicates do not prompt, answer 'yes' to any prompt -Y indicates use the following arguments as 'name'/'value' to set Lazyman config For example: lazyman -Y theme kanagawa If the 'name' argument is 'get' then the current value is returned -z indicates do not run nvim after initialization -Z indicates do not install Homebrew, Neovim, or any other tools -K 'conf' indicates install 'conf' in development unsupported config -u displays this usage message and exits 'health' generate and display a health check for a configuration 'info' open an information page for a configuration in the default browser 'init' initialize specified Neovim configuration and exit 'install' fuzzy search and select configuration to install 'install bob' install the Bob Neovim version manager 'open' fuzzy search and select configuration to open 'remove' fuzzy search and select configuration to remove 'search' fuzzy search and select configurations for a plugin 'status' displays a brief status report and exits 'usage' displays this usage message and exits Commands act on NVIM_APPNAME, override with '-N nvimdir' or '-A' Without arguments lazyman installs and initializes nvim-Lazyman or, if initialized, an interactive menu system is displayed.
Lazyman currently supports the following Neovim plugin managers:
The SpaceVim bundled plugin manager, dein, is supported only for the SpaceVim install and initialization but Neovim configurations preconfigured to use the dein plugin manager may install and initialize successfully.
Neovim configurations using other plugin managers will likely fail to cleanly install and initialize using
lazyman. Support for additional plugin managers is not currently planned but if you have a need for this feature open an issue.
To install and initialize a Neovim configuration that uses the Packer plugin manager invoke
lazyman with the
To install and initialize a Neovim configuration that uses the Plug plugin manager invoke
lazyman with the
To update a previously installed Lazyman Neovim configuration execute
lazyman -U -N <nvimdir> to update the Neovim configuration in
lazyman -U -A to update all configurations, or
lazyman -U to update the
Lazyman configuration. Updates retrieve any newly modified files from the respective Github repository while preserving local modifications. Note, if a file has been modified both locally and in the repository then it will not be updated and retain only local modifications.
lazyman bootstrap process installs a
lazyman manual page in
~/.local/share/man/man1/lazyman.1. This man page includes a synopsis of the
lazyman command line options, a brief description of its use, a description of each command line option, and several example invocations.
lazyman manual page can be viewed with
Lazyman Neovim help can be viewed inside Neovim with
Lazyman Neovim configuration includes a top-level configuration file,
~/.config/nvim-Lazyman/lua/configuration.lua. This file can be use to enable, disable, and configure
Lazyman components. For example, here is where you would configure whether
nvim-tree is enabled as a file explorer. Or, disable the tabline, disable the statusline, set the colorscheme, theme, and theme style. The
configuration.lua file is intended to serve as a quick and easy way to re-configure the
Lazyman Neovim configuration but you can still dig down into the
autocmds.lua and more.
lua/configuration.lua configuration file contains the following sections with settings briefly described here:
Lazyman Neovim configuration contains three separate and distinct configurations. The setting
lua/configuration.lua controls which configuration is active. The supported values for
free namespace is the same configuration used in previous releases of
onno namespace is based on the ONNO configuration with modifications and enhancements to integrate this config with
ecovim namespace is based on the Ecovim configuration with modifications and enhancements to integrate this config with
lazyman along with some fun eye candy and games.
namespace property in
~/.config/nvim-Lazyman/lua/configuration.lua with the command
lazyman -O <namespace> where
<namespace> can be one of
For example, to use the
ecovim namespace, use the
lazyman command to set this configuration property:
1 lazyman -O ecovim
This setting is configurable via the
lazyman menu system, as are most of the
Lazyman configuration settings (
Lazyman Neovim configuration includes pre-configured support for several themes including support for statusline and tabline theme coordination. The active theme and colorscheme is selected in
configuration.lua by setting
conf.theme. For themes that support different styles, the theme style is selected by setting
conf.theme_style. Theme transparency can be enabled with
conf.enable_transparent. For example, to use the
kanagawa theme with
dragon style and transparency disabled, set:
1 2 3 conf.theme = "kanagawa" conf.theme_style = "dragon" conf.enable_transparent = false
A configuration file for each theme is in
lua/themes/ and lualine theme configuration for each theme and its styles in
<F8> to step through themes.
Available styles are:
Several Neovim plugins in the
Lazyman configuration can be optionally installed or replaced by another plugin with similar functionality. The plugins that are configurable in this way in
configuration.lua are briefly described below along with their default settings:
- Neovim session manager to use, either persistence or possession
conf.session_manager = "possession"
- Enable display of ascii art
conf.enable_asciiart = false
- Delete buffers and close files without closing your windows
conf.enable_bbye = true
- Enable display of custom cheatsheets
conf.enable_cheatsheet = true
- Enable coding plugins for diagnostics, debugging, and language sservers
conf.enable_coding = true
- Enable compile plugin to compile and run current file
conf.enable_compile = false
- If coding is enabled, enable Github Copilot
conf.enable_copilot = false
- If coding is enabled, enable Neoai, https://github.com/Bryley/neoai.nvim
conf.enable_neoai = false
- Enable dressing plugin for improved default vim.ui interfaces
conf.enable_dressing = true
- Enable easy motions, can be one of “hop”, “leap”, or “none”
conf.enable_motion = "leap"
- Enable note making using Markdown preview and Obsidian plugins
conf.enable_notes = true
- Enable renamer plugin for VS Code-like renaming UI
conf.enable_renamer = true
- Enable ranger in a floating window
conf.enable_ranger_float = true
- Enable multiple cursors
conf.enable_multi_cursor = true
- Neo-tree or nvim-tree, false will enable nvim-tree
conf.enable_neotree = true
- Replace the UI for messages, cmdline and the popup menu
conf.enable_noice = true
- Enable ChatGPT (set
conf.enable_chatgpt = false
- Enable the wilder plugin
conf.enable_wilder = false
- The statusline (lualine) can be enabled or disabled
conf.enable_statusline = true
- The winbar with navic location can be one of barbecue, standard, or none
conf.enable_winbar = "standard"
- Enable LSP progress in winbar
conf.enable_lualine_lsp_progress = true
- Enable the rebelot/terminal.nvim terminal plugin
conf.enable_terminal = true
- Enable playing games inside Neovim!
conf.enable_games = true
- Enable the Alpha dashboard
conf.dashboard = "alpha"
- Enable the Neovim bookmarks plugin
conf.enable_bookmarks = false
- Enable the Neovim IDE plugin
conf.enable_ide = false
- Enable Navigator
conf.enable_navigator = true
- Enable Project manager
conf.enable_project = true
- Enable smooth scrolling with the
conf.enable_smooth_scrolling = true
- Enable window picker
conf.enable_picker = true
- Show diagnostics, can be one of “none”, “icons”, “popup”. Default is “popup”
conf.show_diagnostics = "icons"
- Enable semantic highlighting
conf.enable_semantic_highlighting = true
- Convert semantic highlights to treesitter highlights
conf.convert_semantic_highlighting = true
Additional plugin configuration and options are available in
Lazyman Neovim configuration includes Neovim Terminal management via terminal.nvim. This Neovim terminal is preconfigured for execution of the
lazyman command. Shortcut key bindings to execute
lazyman in a Neovim terminal have been provided:
<leader>lm to bring up the main Lazyman menu, and
<leader>lc to bring up the Lazyman configuration menu. While in Neovim with the default
Lazyman configuration, pressing
,lm will execute the
lazyman command in a Neovim floating terminal window and pressing
,lc will execute
lazyman -F in a terminal window. Alternately, executing the Neovim command
:Lazyman will also bring up the
lazyman command in a Neovim terminal.
The Lazyman Neovim configuration includes an autocmd to automatically enter insert mode when opening the Neovim Terminal. This allows immediate input to the
lazyman prompt. While in the Neovim Terminal the normal Neovim mode, motion, and command key bindings are in effect. For example, to leave insert mode press
<ESC>, to re-enter insert mode press
If Asciiville is installed, pressing
,A or executing the
:Asciiville Neovim command will execute the
asciiville command in a Neovim floating terminal window.
htop command is available,
:Htop will execute the
htop system monitor in a floating Neovim terminal window.
This preconfigured Neovim terminal capability is only available in the
Lazyman Neovim configuration and not in the other configs.