-
-
Notifications
You must be signed in to change notification settings - Fork 17
Usage
The lazyman.sh script is located in ~/.config/nvim-lazyman.
It installs itself as $HOME/.local/bin/lazyman. If $HOME/.local/bin is
in your execution PATH then lazyman can be executed from the command
line as simply lazyman. The manual page can be viewed with man lazyman.
Within Neovim the nvim-lazyman help doc can be viewed with :h nvim-lazyman.
The 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. To update
a previously installed Lazyman Neovim configuration execute
lazyman -U -N <nvimdir> or lazyman -U -A to update all configurations.
After installing and initializing Neovim configurations with lazyman,
easily explore various configurations with the lazyman -e <config> ...
command. See the
Using lazyman to explore configurations
section below for details.
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.
The usage message for lazyman:
Usage: lazyman [-A] [-a] [-B] [-b branch] [-c] [-d] [-e] [-E config]
[-F] [-i] [-k] [-l] [-m] [-M] [-s] [-S] [-v] [-n] [-p] [-P] [-q]
[-h] [-H] [-I] [-L cmd] [-rR] [-C url] [-D subdir] [-N nvimdir]
[-T] [-U] [-w conf] [-W] [-x conf] [-X] [-y] [-z] [-Z] [-u] [status]
Where:
-A indicates install all supported Neovim configurations
-a indicates install and initialize AstroNvim 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
-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 indicates present the Lazyman Configuration menu
-i indicates install and initialize Lazyman 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 MiniVim Neovim configuration
-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
-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 indicates install language servers and tools for coding diagnostics
-L 'cmd' specifies a Lazy command to run in the selected configuration
-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 no plugin manager, initialize with :TSUpdate
-U indicates update an existing configuration
-w 'conf' indicates install and initialize Extra 'conf' config
'conf' can be one of:
'Abstract' 'Knvim' 'Roiz' 'Fennel' 'Nv'
'Adib' 'Optixal' 'Plug' 'Simple' 'Heiker'
-W indicates install and initialize all 'Extra' Neovim configurations
-x 'conf' indicates install and initialize nvim-starter 'conf' config
'conf' can be one of:
'Kickstart' 'NvPak' 'Minimal' 'StartBase'
'Opinion' 'StartLsp' 'StartMason', or 'Modular'
-X indicates install and initialize all 'Starter' configs
-y indicates do not prompt, answer 'yes' to any prompt
-z indicates do not run nvim after initialization
-Z indicates do not install Homebrew, Neovim, or any other tools
-u displays this usage message and exits
'status' displays a brief status report 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.
The 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.
The lazyman manual page can be viewed with man lazyman.
Lazyman Neovim help can be viewed inside Neovim with :h nvim-lazyman.
The nvim-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 nvim-lazyman components. For example, here is where you
would configure whether neo-tree or 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 nvim-lazyman Neovim configuration but you can still
dig down into the options.lua, keymaps.lua, autocmds.lua and more.
The lua/configuration.lua configuration file contains the following sections
with settings briefly described here:
The nvim-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 M.theme.
For themes that support different styles, the theme style is selected by setting
M.theme_style. Theme transparency can be enabled with M.enable_transparent.
For example, to use the kanagawa theme with dragon style and transparency
disabled, set:
M.theme = "kanagawa"
M.theme_style = "dragon"
M.enable_transparent = false
A configuration file for each theme is in lua/themes/ and lualine theme
configuration for each theme and its styles in lua/themes/lualine.
Use <F8> to step through themes.
Available styles are:
- kanagawa
- wave
- dragon
- lotus
- tokyonight
- night
- storm
- day
- moon
- onedarkpro
- onedark
- onelight
- onedark_vivid
- onedark_dark
- monokai-pro
- classic
- octagon
- pro
- machine
- ristretto
- spectrum
- catppuccin
- latte
- frappe
- macchiato
- mocha
- nightfox
- carbonfox
- dawnfox
- dayfox
- duskfox
- nightfox
- nordfox
- terafox
Several Neovim plugins in the nvim-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
M.session_manager = "possession"
- Neo-tree or nvim-tree, false will enable nvim-tree
M.enable_neotree = true
- Replace the UI for messages, cmdline and the popupmenu
M.enable_noice = true
- Enable the newer rainbow treesitter delimiter highlighting
M.enable_rainbow2 = true
- Enable the wilder plugin
M.enable_wilder = false
- The statusline (lualine) and tabline can each be enabled or disabled
M.disable_statusline = falseM.enable_tabline = true
- The winbar with location
M.enable_winbar = false
- Enable playing games inside Neovim!
M.enable_games = true
- Enable the Alpha dashboard
M.enable_alpha = true
- Enable the Neovim bookmarks plugin (https://github.com/ldelossa/nvim-ide)
M.enable_bookmarks = false
- Enable the Neovim IDE plugin (https://github.com/ldelossa/nvim-ide)
M.enable_ide = false
- Enable Navigator
M.enable_navigator = true
- Enable Project manager
M.enable_project = true
- Enable window picker
M.enable_picker = true
Additional plugin configuration and options are available in configuration.lua.
View the default `configuration.lua`
local conf = {} -- THEME CONFIGURATION -- Available themes: -- nightfox, tokyonight, dracula, kanagawa, catppuccin, -- tundra, onedarkpro, everforest, monokai-pro -- A configuration file for each theme is in lua/themes/ -- Use <F8> to step through themes conf.theme = "tokyonight" -- Available styles are: -- kanagawa: wave, dragon, lotus -- tokyonight: night, storm, day, moon -- onedarkpro: onedark, onelight, onedark_vivid, onedark_dark -- catppuccin: latte, frappe, macchiato, mocha, custom -- dracula: blood, magic, soft, default -- nightfox: carbonfox, dawnfox, dayfox, duskfox, nightfox, nordfox, terafox -- monokai-pro: classic, octagon, pro, machine, ristretto, spectrum conf.theme_style = "moon" -- enable transparency if the theme supports it conf.enable_transparent = true -- GLOBAL OPTIONS CONFIGURATION -- Some prefer space as the map leader, but why conf.mapleader = "," conf.maplocalleader = "," -- Toggle global status line conf.global_statusline = true -- set numbered lines conf.number = false -- enable mouse see :h mouse conf.mouse = "nv" -- set relative numbered lines conf.relative_number = false -- always show tabs; 0 never, 1 only if at least two tab pages, 2 always -- see enable_tabline below to disable or enable the tabline conf.showtabline = 2 -- enable or disable listchars conf.list = true -- which list chars to show conf.listchars = { eol = "⤶", tab = ">.", trail = "~", extends = "◀", precedes = "▶", } -- use rg instead of grep conf.grepprg = "rg --hidden --vimgrep --smart-case --" -- ENABLE/DISABLE/SELECT PLUGINS -- neovim session manager to use, either persistence or possession conf.session_manager = "possession" -- neo-tree or nvim-tree, false will enable nvim-tree conf.enable_neotree = true -- Replace the UI for messages, cmdline and the popupmenu conf.enable_noice = true -- Enable ChatGPT (set OPENAI_API_KEY environment variable) conf.enable_chatgpt = false -- Enable the newer rainbow treesitter delimiter highlighting conf.enable_rainbow2 = true -- Enable fancy lualine components conf.enable_fancy = true -- Enable the wilder plugin conf.enable_wilder = false -- The statusline (lualine), tabline, and winbar can each be enabled or disabled -- Enable statusline (lualine) conf.enable_statusline = true -- Enable tabline conf.enable_tabline = true -- Enable winbar with navic location via lspconfig conf.enable_winbar = true -- Enable rebelot/terminal.nvim conf.enable_terminal = true -- Enable playing games inside Neovim! conf.enable_games = true -- -- Enable preferred dashboard, disable all for no dashboard -- -- Enable the Alpha dashboard conf.enable_alpha = true -- Enable the dashboard-nvim dashboard conf.enable_dashboard = false -- Enable the Mini Starter dashboard conf.enable_mini_starter = false -- -- TODO: fix startup dashboard configuration -- Enable the Startup dashboard -- conf.enable_startup = false -- Startup dashboard theme ("dashboard", "lazyman", or "startify") -- conf.startup_theme = "lazyman" -- -- Number of recent files, dashboard header and quick links settings -- only apply to the Alpha dashboard -- Number of recent files shown in dashboard -- 0 disables showing recent files conf.dashboard_recent_files = 3 -- Enable the header of the dashboard conf.enable_dashboard_header = false -- Enable quick links of the dashboard conf.enable_dashboard_quick_links = true -- -- enable the Neovim bookmarks plugin (https://github.com/ldelossa/nvim-ide) conf.enable_bookmarks = false -- enable the Neovim IDE plugin (https://github.com/ldelossa/nvim-ide) conf.enable_ide = false -- Enable Navigator conf.enable_navigator = true -- Enable Project manager conf.enable_project = true -- Enable window picker conf.enable_picker = true -- Enable smooth scrolling with neoscroll plugin conf.enable_smooth_scrolling = true -- PLUGINS CONFIGURATION -- media backend, one of "ueberzug"|"viu"|"chafa"|"jp2a"|catimg conf.media_backend = "jp2a" -- Enable colored indentation lines if theme supports it conf.enable_color_indentline = true -- treesitter parsers to be installed conf.treesitter_ensure_installed = { "bash", "go", "html", "java", "json", "lua", "markdown", "markdown_inline", "query", "python", "regex", "toml", "vim", "vimdoc", "yaml", } -- Enable clangd or ccls will be used for C/C++ diagnostics conf.enable_clangd = false -- LSPs that should be installed by Mason-lspconfig conf.lsp_servers = { "bashls", "cssmodules_ls", "denols", "dockerls", "eslint", "gopls", "graphql", "html", "jdtls", "jsonls", "julials", "ltex", "lua_ls", "marksman", "pylsp", "pyright", "sqlls", "tailwindcss", "terraformls", "texlab", "tsserver", "vimls", "yamlls", } -- Formatters and linters installed by Mason conf.formatters_linters = { "actionlint", "goimports", "gofumpt", "golangci-lint", "google-java-format", "latexindent", "markdownlint", "prettier", "sql-formatter", "shellcheck", "shfmt", "stylua", "tflint", "yamllint", } -- enable greping in hidden files conf.telescope_grep_hidden = true -- Show diagnostics, can be one of "none", "icons", "popup". Default is "popup" -- "none": diagnostics are disabled but still underlined -- "icons": only an icon will show, use ',de' to see the diagnostic -- "popup": an icon will show and a popup with the diagnostic will appear conf.show_diagnostics = "icons" -- Enable semantic highlighting conf.enable_semantic_highlighting = true -- Convert semantic highlights to treesitter highlights conf.convert_semantic_highlighting = true return conf