*nvim.txt*	Nvim


                            NVIM REFERENCE MANUAL


Nvim                                              *nvim* *neovim* *nvim-intro*

Nvim is based on Vim by Bram Moolenaar. Nvim is emphatically a fork of Vim,
not a clone: compatibility with Vim (especially editor and Vimscript features,
except |Vim9script|) is maintained where possible. See |vim-differences| for
the complete reference.

- If you already use Vim, see |nvim-from-vim| for a quickstart.
- If you have never used Vim or Nvim before, see below.

                                      Type |gO| to see the table of contents.

==============================================================================
What now?                                                    *nvim-quickstart*

To learn how to use Vim in 30 minutes, try the tutorial: >vim

    :Tutor<Enter>
<
Or watch this 10-minute video: https://youtu.be/TQn2hJeHQbM .

To customize Nvim, you will need a config file. Create your |init.lua| by
copying the "example_init.lua" file: >vim

    :exe 'edit' stdpath('config') .. '/init.lua'
    :read $VIMRUNTIME/example_init.lua
<
See |lua-guide| for practical notes on using Lua to configure Nvim.

"IDE" features in Nvim are provided by |LSP|.

If you are just trying out Nvim for a few minutes, and want to see the
extremes of what it can do, try one of these popular "extension packs" or
"distributions" (Note: Nvim is not affiliated with these projects, and does
not support them):

- *lazyvim* https://www.lazyvim.org/
- *nvchad* https://nvchad.com/
- *kickstart* https://github.com/nvim-lua/kickstart.nvim
  - Not recommended; use `$VIMRUNTIME/example_init.lua` instead.

However, we recommend (eventually) taking time to learn Nvim from its stock
configuration, and incrementally setting options and adding plugins to your
|config| as you discover a need.

==============================================================================
Transitioning from Vim                                         *nvim-from-vim*

1. To start the transition, create your |init.vim| (user config) file: >vim

    :exe 'edit '.stdpath('config').'/init.vim'
    :write ++p

2. Add these contents to the file: >vim

    set runtimepath^=~/.vim runtimepath+=~/.vim/after
    let &packpath = &runtimepath
    source ~/.vimrc

3. Restart Nvim, your existing Vim config will be loaded.

See |provider-python| and |provider-clipboard| for additional software you
might need to use some features.

Your Vim configuration might not be entirely Nvim-compatible (see
|vim-differences|). For example the |'ttymouse'| option was removed from Nvim,
because mouse support is always enabled if possible. If you use the same
|vimrc| for Vim and Nvim you could guard |'ttymouse'| in your configuration
like so:
>vim
    if !has('nvim')
        set ttymouse=xterm2
    endif

And for Nvim-specific configuration, you can do this:
>vim
    if has('nvim')
        tnoremap <Esc> <C-\><C-n>
    endif

For a more granular approach use |exists()|:
>vim
    if exists(':tnoremap')
        tnoremap <Esc> <C-\><C-n>
    endif

Now you should be able to explore Nvim more comfortably. Check |nvim-features|
for more information.

                                                        *portable-config*
Because Nvim follows the XDG |base-directories| standard, configuration on
Windows is stored in ~/AppData instead of ~/.config. But you can still share
the same Nvim configuration on all of your machines, by creating
~/AppData/Local/nvim/init.vim containing just this line: >vim
    source ~/.config/nvim/init.vim

==============================================================================
 vim:tw=78:ts=8:et:ft=help:norl:
