Quick links: help overview · quick reference · user manual toc · reference manual toc
Go to keyword (shortcut: k)
Site search (shortcut: s)
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:


Quick links: help overview · quick reference · user manual toc · reference manual toc