-
-
Notifications
You must be signed in to change notification settings - Fork 17
Lazyman Configuration
The nvim-Lazyman Neovim configuration is a synthesis of the best features
from LazyVim, AstroNvim, the Allaman, ONNO, and Ecovim configs, and
several others combined with some features from my vim-plug based Vim
configuration and many enhancements.
One of the features of the nvim-Lazyman Neovim configuration is the
lua/configuration.lua configuration file which allows the user to
enable or disable a variety of features. For example, this file controls
which dashboard is used, whether Noice is enabled, which session manager
is used, which theme is used, and much more.
This document will attempt to describe the features, options, plugin
configurations, and key bindings of the nvim-Lazyman Neovim configuration.
Details of the nvim-Lazyman configuration menu system can be viewed in the
source code listing. Similar menu configuration systems can
be found for the nvim-LazyIde configuration and the
nvim-Webdev configuration. These may be the first and only
Neovim menu configuration systems in existence. Let us know if others exist.
The primary feature of the nvim-Lazyman Neovim configuration is the inclusion
of the lazyman command to easily install, initialize, manage, and explore
multiple Neovim configurations. In addition, the lazyman command provides
a menu interface to manage multiple Neovim configurations and sub-menus to
easily configure and manage the Lazyman Neoovim configuration.
-
lazymancommand to easily install, initialize, manage, and explore multiple Neovim configurations - support for Lazy, Packer, and vim-plug plugin managers
- automated installation of dependencies, tools, language servers, and Neovim 0.9
- richly configured
nvim-LazymanNeovim configuration - interactive menu interface for ease of management
- 31 supported Neovim configurations out of the box, additional custom configs
- convenience shell functions and aliases with fuzzy search and selection
- vimdoc help for
nvim-Lazymanwith:h nvim-Lazyman
- Package management and plugin configuration via lazy.nvim
-
Multiple namespaces, it is really 3 configurations in one. Switch between namespaces with the
conf.namespacesetting inlua/configuration.luaor via the Lazyman menu system (lazyman -F). - Easily configure theme, active plugins, and their configuration via configuration.lua
- Preconfigured themes: catppuccin, tokyonight, nightfox, tundra, dracula, kanagawa, onedarkpro, everforest, monokai-pro
- Keymap to toggle transparency for several color schemes (
,ut)
- Keymap to toggle transparency for several color schemes (
- Auto-configure ChatGPT (GPT-4) if
OPENAI_API_KEYis found in the environment using ChatGPT.nvim- Uses ChatGPT prompts from Awesome ChatGPT Prompts
- Custom Lazyman Cheat Sheets using cheatsheet.nvim
-
:Cheatsheetcommand, fuzzy searchlazymanfor custom Lazyman keymaps
-
- Mnemonic keyboard mappings inspired by Spacemacs via which-key.nvim; no more than three keystrokes for each keybinding
- Replace the UI for messages, cmdline and popup menu via noice.nvim
- Fully featured status line via lualine and tabline
- Terminal integration via nvim-toggleterm.lua
-
Terminal management via terminal.nvim
- Preconfigured Neovim terminal execution of
lazymancommand (<leader>lm) - Preconfigured Neovim terminal execution of
asciivillecommand (<leader>A) - Preconfigured Neovim terminal execution of
htopcommand (<leader>H)
- Preconfigured Neovim terminal execution of
- Fancy notifications via nvim-notify
- Code diagnostics via LSP
- Choice of preconfigured dashboard: alpha (default), dashboard-nvim, or mini.starter
- Neovim games for fun and learning (Sudoku, Blackjack, vim-be-good practice basic movements, and more).
- Key map
<leader>G(e.g.,G) displays the available games and amusements.
- Key map
- Github actions to publish docker image on Docker Hub, check spelling/syntax, and auto-generate vim help doc (see
.github/workflows/*.yml) - Over 100 plugins with custom configuration
- Telescope.nvim for all your search needs
- Project management with Project.nvim
- File tree navigation/manipulation via neo-tree
- Better Tmux navigation with your home row via Navigator.nvim
- Convenient jumping through windows with nvim-window-picker
- Auto completion powered by nvim-cmp
- Built-in LSP configured via nvim-lspconfig, mason, and mason-lspconfig
- Debugging for Go and Python via nvim-dap and friends
- Treesitter and Tresitter-textobjects for your syntax needs
- Auto formatting via null-ls.nvim
- Excellent Go support via LSP and go.nvim including sensible keybindings
- Always know where you are in your code via nvim-navic
- Git integration via Neogit and gitsigns
- Outlining symbols with symbols-outline.nvim
- Snippets provided by Luasnip and friendly snippets with autocompletion
Go development

Debugging via DAP

The Lazyman Neovim configuration includes Neovim Terminal management via
terminal.nvim. This Neovim terminal
is preconfigured for execution of the lazyman command. A shortcut key
binding to execute lazyman in a Neovim terminal has also been provided:
(<leader>lm). While in Neovim with the default nvim-Lazyman configuration,
pressing ,lm will execute the lazyman command in a Neovim floating terminal
window. Alternately, executing the Neovim command :Lazyman will also
bring up the lazyman command in a Neovim terminal.
If Asciiville is installed,
pressing ,A or executing the :Asciiville Neovim command will execute
the asciiville command in a Neovim floating terminal window.
If the 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.
The Lazyman Neovim configuration supports multiple namespaces, each of which has its own separate and distinct configuration, options, plugins, and style.
Use the Lazyman configuration menu to select a namespace (lazyman -F).
The default namespace is free. This was the traditional namespace used by
all previous versions of Lazyman:
The onno namespace is based on the ONNO Lazyman Neovim configuration:
The ecovim namespace is based on the Ecovim Lazyman Neovim configuration:
Leader Key Clusters via which-key

See ./lua/plugins/which-key.lua for details.
If you have Docker on your system you can try out this config via the provided Dockerfile
You can build the Docker image locally on your own:
docker build -t nvim .docker run --name nvim --rm -it nvimdocker run --name nvim --rm -it -v ${HOME}/tmp:/home/nvim/mount nvimdocker run --name nvim --rm -it --entrypoint=/bin/bash nvimThe installation script sets up all required tools on a fresh
machine to work with the Lazyman Neovim config. The installation script can
be invoked with lazyman -I.