vim-galore/content/neovim.md
2016-02-05 12:42:20 +01:00

2.1 KiB

Neovim


Configuration

Neovim adheres to the XDG Base Directory Specification. If you don't have them set already, $XDG_CONFIG_HOME defaults to ~/.config and $XDG_DATA_HOME defaults to ~/.local/share.

Flavour User configuration directory vimrc
Vim ~/.vim ~/.vimrc or /.vim/vimrc
Neovim ~/.config/nvim ~/.config/nvim/init.vim

Working files are put under ~/.local/share/nvim by default.

Related help: :h nvim-configuration

Terminal emulator

Neovim implements a proper terminal emulator (libvterm) and can easily fire up a new shell via :terminal.

In Vim you run interactive programs like this: :!read foo && echo $foo. In Neovim this won't work because :! uses named pipes (libuv processes) for communication now. Use :te read foo && echo $foo instead.

By now you might have noticed, that you can't leave the insert mode in a terminal buffer via <esc>, since it gets captured by the terminal emulator instead of Neovim. Use <c-\><c-n> instead.

Since terminal buffers are a new kind of buffer (&buftype is set to "terminal"), there are also new commands for creating terminal mappings: :tmap, :tnoremap, and :tunmap.

There are also two new autocmd events: TermOpen and TermClose.

Here an example configuration:

if has('nvim')
  nnoremap <leader>t  :vsplit +terminal<cr>
  tnoremap <esc>      <c-\><c-n>
  tnoremap <a-h>      <c-\><c-n><c-w>h
  tnoremap <a-j>      <c-\><c-n><c-w>j
  tnoremap <a-k>      <c-\><c-n><c-w>k
  tnoremap <a-l>      <c-\><c-n><c-w>l
  autocmd BufEnter term://* startinsert
endif

Related help:

:h :terminal
:h nvim-terminal-emulator