plugins.txt Nvim NVIM REFERENCE MANUAL Type gO to see the table of contents. ============================================================================== Plugins and modules included with Nvim plugins Nvim includes various Lua and Vim plugins or modules which may provide commands (such as :TOhtml) or modules that you can optionally require() or :packadd. The Lua ones are not part of the lua-stdlib, that is, they are not available from the global vim module namespace. Some of the plugins are loaded by default while others are not loaded until requested by :packadd. ============================================================================== Standard plugins standard-plugin-list Help-link Loaded Short description difftool No Compares two directories or files side-by-side editorconfig Yes Detect and interpret editorconfig ft-shada Yes Allows editing binary shada files man.lua Yes View manpages in Nvim matchit Yes Extended % matching matchparen Yes Highlight matching pairs netrw Yes Reading and writing files over a network package-cfilter No Filtering quickfix/location list package-justify No Justify text package-nohlsearch No Automatically run :nohlsearch package-spellfile Yes Install spellfile if missing package-termdebug No Debug inside Nvim with gdb package-tohtml No Convert buffer to html, syntax included package-undotree No Interactive textual undotree pi_gzip.txt Yes Reading and writing compressed files pi_msgpack.txt No msgpack utilities pi_paren.txt Yes Highlight matching parens pi_spec.txt Yes Filetype plugin to work with rpm spec files pi_swapmouse No Swap meaning of left and right mouse buttons pi_tar.txt Yes Tar file explorer pi_tutor.txt Yes Interactive tutorial pi_zip.txt Yes Zip archive explorer ============================================================================== Builtin plugin: difftool difftool :DiffTool {left} {right} :DiffTool Compares two directories or files side-by-side. Supports directory diffing, rename detection, and highlights changes in quickfix list. Replaces the built-in `nvim -d` diff mode with this interface. The plugin is not loaded by default; use :packadd to activate it: :packadd nvim.difftool Example `git difftool -d` integration using `nvim -d` replacement: >ini [difftool "nvim_difftool"] cmd = nvim -c \"packadd nvim.difftool\" -d \"$LOCAL\" \"$REMOTE\" [diff] tool = nvim_difftool < open({left}, {right}, {opt}) difftool.open() Diff two files or directories Parameters: • {left} (`string`) • {right} (`string`) • {opt} (`table?`) • {rename.detect} (`boolean`, default: false) Whether to detect renames • {rename.similarity} (`number`, default: 0.5) Minimum similarity for rename detection (0 to 1) • {rename.chunk_size} (`number`, default: 4096) Maximum chunk size to read from files for similarity calculation • {method} (`'auto''builtin''diffr'`, default: auto) Diff method to use • {ignore} (`string[]`, default: {}) List of file patterns to ignore (for example: `'.git', '*.log'`) • {rename} (`table`) Controls rename detection ============================================================================== Builtin plugin: editorconfig editorconfig EditorConfig is like 'modeline' for an entire (recursive) directory. When a file is opened, after running ftplugins and FileType autocommands, the EditorConfig feature searches all parent directories of that file for .editorconfig files, parses them, and applies their properties. For more information see https://editorconfig.org/. Example .editorconfig file: >ini root = true [*] charset = utf-8 end_of_line = lf indent_size = 4 indent_style = space max_line_length = 42 trim_trailing_whitespace = true [*.{diff,md}] trim_trailing_whitespace = false < g:editorconfig b:editorconfig EditorConfig is enabled by default. To disable it, add to your config: vim.g.editorconfig = false (Vimscript: `let g:editorconfig = v:false`). It can also be disabled per-buffer by setting the b:editorconfig buffer-local variable to false. Nvim stores the applied properties in b:editorconfig if it is not false. editorconfig-custom-properties New properties can be added by adding a new entry to the "properties" table. The table key is a property name and the value is a callback function which accepts the number of the buffer to be modified, the value of the property in the .editorconfig file, and (optionally) a table containing all of the other properties and their values (useful for properties which depend on other properties). The value is always a string and must be coerced if necessary. Example: require('editorconfig').properties.foo = function(bufnr, val, opts) if opts.charset and opts.charset ~= "utf-8" then error("foo can only be set when charset is utf-8", 0) end vim.b[bufnr].foo = val end editorconfig-properties The following properties are supported by default: charset editorconfig.charset One of "utf-8", "utf-8-bom", "latin1", "utf-16be", or "utf-16le". Sets the 'fileencoding' and 'bomb' options. end_of_line editorconfig.end_of_line One of "lf", "crlf", or "cr". These correspond to setting 'fileformat' to "unix", "dos", or "mac", respectively. indent_size editorconfig.indent_size A number indicating the size of a single indent. Alternatively, use the value "tab" to use the value of the tab_width property. Sets the 'shiftwidth' and 'softtabstop' options. If this value is not "tab" and the tab_width property is not set, 'tabstop' is also set to this value. indent_style editorconfig.indent_style One of "tab" or "space". Sets the 'expandtab' option. insert_final_newline editorconfig.insert_final_newline "true" or "false" to ensure the file always has a trailing newline as its last byte. Sets the 'fixendofline' and 'endofline' options. max_line_length editorconfig.max_line_length A number indicating the maximum length of a single line. Sets the 'textwidth' option. root editorconfig.root If "true", then stop searching for .editorconfig files in parent directories. This property must be at the top-level of the .editorconfig file (i.e. it must not be within a glob section). spelling_language editorconfig.spelling_language A code of the format ss or ss-TT, where ss is an ISO 639 language code and TT is an ISO 3166 territory identifier. Sets the 'spelllang' option. tab_width editorconfig.tab_width The display size of a single tab character. Sets the 'tabstop' option. trim_trailing_whitespace editorconfig.trim_trailing_whitespace When "true", trailing whitespace is automatically removed when the buffer is written. ============================================================================== Builtin plugin: spellfile package-spellfile Asks the user to download missing spellfiles. The spellfile is written to `stdpath('data') .. 'site/spell'` or the first writable directory in the 'runtimepath'. The plugin can be disabled by setting `g:loaded_spellfile_plugin = 1`. nvim.spellfile.Opts A table with the following fields: Fields: • {url} (`string`) The base URL from where the spellfiles are downloaded. Uses g:spellfile_URL if it's set, otherwise https://ftp.nluug.nl/pub/vim/runtime/spell. • {timeout_ms} (`integer`, default: 15000) Number of milliseconds after which the vim.net.request() times out. • {confirm} (`boolean`, default: true) Whether to ask user to confirm download. config({opts}) spellfile.config() Configure spellfile download options. For example: require('nvim.spellfile').config({ url = '...' }) Parameters: • {opts} (`nvim.spellfile.Opts?`) When omitted or nil, retrieve the current configuration. Otherwise, a configuration table. Return: (`nvim.spellfile.Opts?`) Current config if {opts} is omitted. get({lang}) spellfile.get() Download spellfiles for language {lang} if available. Parameters: • {lang} (`string`) Language code. Return: (`table?`) A table with the following fields: • {files} (`string[]`) • {key} (`string`) • {lang} (`string`) • {encoding} (`string`) • {dir} (`string`) ============================================================================== Builtin plugin: tohtml package-tohtml :[range]TOhtml {file} :TOhtml Converts the buffer shown in the current window to HTML, opens the generated HTML in a new split window, and saves its contents to {file}. If {file} is not given, a temporary file (created by tempname()) is used. The plugin is not loaded by default; use :packadd to activate it: :packadd nvim.tohtml tohtml({winid}, {opt}) tohtml.tohtml() Converts the buffer shown in the window {winid} to HTML and returns the output as a list of string. Parameters: • {winid} (`integer?`) Window to convert (defaults to current window) • {opt} (`table?`) Optional parameters. • {title}? (`string|false`, default: buffer name) Title tag to set in the generated HTML code. • {number_lines}? (`boolean`, default: false) Show line numbers. • {font}? (`string[]|string`, default: guifont) Fonts to use. • {width}? (`integer`, default: 'textwidth' if non-zero or window width otherwise) Width used for items which are either right aligned or repeat a character infinitely. • {range}? (`integer[]`, default: entire buffer) Range of rows to use. Return: (`string[]`) ============================================================================== Builtin plugin: undotree package-undotree open({opts}) undotree.open() Open a window that displays a textual representation of the undo-tree, or closes the window if it is already open. Can also be shown with :Undotree. :Undotree While in the window, moving the cursor changes the undo. The plugin is not loaded by default; use :packadd to activate it: :packadd nvim.undotree Parameters: • {opts} (`table?`) A table with the following fields: • {bufnr} (`integer?`) Buffer to draw the tree into. If omitted, a new buffer is created. • {winid} (`integer?`) Window id to display the tree buffer in. If omitted, a new window is created with {command}. • {command} (`string?`) Vimscript command to create the window. Default value is "30vnew". Only used when {winid} is nil. • {title} (`(string|fun(bufnr:integer):string?)?`) Title of the window. If a function, it accepts the buffer number of the source buffer as its only argument and should return a string. Return: (`boolean?`) Returns true if the window was already open, nil otherwise vim:tw=78:ts=8:sw=4:sts=4:et:ft=help:norl: