-
-
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 branch] [-c] [-d] [-e config] [-k] [-l] [-m] [-v]
[-n] [-q] [-P] [-I] [-L cmd] [-rR] [-C url] [-N nvimdir] [-U] [-y] [-u]
Where:
-A indicates install all supported Neovim configurations
-a indicates install and initialize AstroNvim Neovim configuration
-b 'branch' specifies an nvim-lazyman git branch to checkout
-c indicates install and initialize NvChad Neovim configuration
-d indicates debug mode
-e 'config' execute 'nvim' with 'config' Neovim configuration
'config' can be one of 'lazyman', 'allaman', astronvim', 'kickstart', 'nvchad',
'lazyvim', lunarvim', or any Neovim configuration directory in '~/.config'
'lazyman -e lazyvim foo.lua' would edit 'foo.lua' with the LazyVim config
-k indicates install and initialize Kickstart Neovim configuration
-l indicates install and initialize LazyVim Neovim configuration
-m indicates install and initialize Allaman Neovim configuration
-v indicates install and initialize LunarVim Neovim configuration
-n indicates dry run, don't actually do anything, just printf's
-p indicates use Packer rather than Lazy to initialize
-q indicates quiet install
-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
-U indicates update an existing configuration
-y indicates do not prompt, answer 'yes' to any prompt
-u 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
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 M = {} -- THEME CONFIGURATION -- Available themes: -- monokai-pro, nightfox, tokyonight, kanagawa, catppuccin, tundra, onedarkpro, everforest -- A configuration file for each theme is in lua/themes/ -- Use <F8> to step through themes M.theme = "tokyonight" -- 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 M.theme_style = "moon" -- enable transparency if the theme supports it M.enable_transparent = true -- GLOBAL OPTIONS CONFIGURATION -- Some prefer space as the map leader, but why M.mapleader = "," M.maplocalleader = "," -- Toggle global status line M.global_statusline = true -- set numbered lines M.number = false -- enable mouse see :h mouse M.mouse = "nv" -- set relative numbered lines M.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 M.showtabline = 2 -- enable or disable listchars M.list = true -- which list chars to show M.listchars = "eol:¬,tab:>·,trail:~,extends:>,precedes:<" -- use rg instead of grep M.grepprg = "rg --hidden --vimgrep --smart-case --" -- ENABLE/DISABLE/SELECT PLUGINS -- 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 -- Noice heavily changes the Neovim UI ... 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 -- Disable statusline (lualine) M.disable_statusline = false -- Enable tabline M.enable_tabline = true -- Disable 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 M.enable_bookmarks = false -- enable the Neovim IDE plugin M.enable_ide = false -- Enable Navigator M.enable_navigator = true -- Enable Project manager M.enable_project = true -- Enable window picker M.enable_picker = true -- PLUGINS CONFIGURATION -- media backend, one of "ueberzug"|"viu"|"chafa"|"jp2a"|catimg M.media_backend = "jp2a" -- Number of recent files shown in dashboard -- 0 disables showing recent files M.dashboard_recent_files = 5 -- disable the header of the dashboard M.disable_dashboard_header = true -- disable quick links of the dashboard M.disable_dashboard_quick_links = false -- treesitter parsers to be installed -- one of "all", "maintained" (parsers with maintainers), or a list of languages M.treesitter_ensure_installed = "maintained" -- Enable clangd or ccls will be used for C/C++ diagnostics M.enable_clangd = true -- Tools that should be installed by Mason(-tool-install) -- Some of these are installed with Homebrew, which should Mason install? M.mason_tool_installer_ensure_installed = { -- DAP "debugpy", -- LSP "bash-language-server", "dockerfile-language-server", "json-lsp", "marksman", "typescript-language-server", "texlab", "ltex-ls", "lua-language-server", "pyright", "terraform-ls", "yaml-language-server", -- Formatter "black", "prettier", "stylua", "shfmt", -- Linter "eslint_d", "shellcheck", "tflint", "yamllint", } -- enable greping in hidden files M.telescope_grep_hidden = true -- which patterns to ignore in file switcher M.telescope_file_ignore_patterns = { "%.7z", "%.MOV", "%.RAF", "%.burp", "%.bz2", "%.cache", "%.class", "%.dll", "%.docx", "%.dylib", "%.epub", "%.exe", "%.flac", "%.ico", "%.ipynb", "%.jar", "%.lock", "%.mkv", "%.mov", "%.mp4", "%.otf", "%.pdb", "%.rar", "%.sqlite3", "%.svg", "%.tar", "%.tar.gz", "%.zip", ".git/", ".gradle/", ".idea/", ".settings/", ".vale/", ".vscode/", "__pycache__/*", "build/", "env/", "gradle/", "node_modules/", "smalljre_*/*", "target/", "vendor/*", } -- Enable diagnostics on workspace (not yet working) M.workspace_diagnostic = false return M