Neovim es un fork del famoso editor de texto vim creado por Bram Moolenaar.

Las características que lo hacen diferente de vim son:

  • Viene preconfigurado por defecto para ser más amigable con el usuario.
  • Mejor soporte de plugins.
  • Soporte para tareas asíncronas.
  • Preparado para ser backend de otros editores de texto.
  • Emulador de terminal integrado.

En el uso diario del editor no vamos a notar diferencia entre ambos, pero si vamos a encontrarnos menos problemas con los plugins y demás.

Instalación de neovim

Neovim suele estar en los repositorios de cualquier distribución Linux.

# Distros basadas en arch
sudo pacman -S neovim
# Debian y derivas
sudo apt-get install neovim
# Fedora
sudo dnf install neovim

Sino está disponible, en el github suelen lanzar versiones precompiladas en formato AppImage listas para usar.

wget https://github.com/neovim/neovim/releases/download/v0.4.4/nvim.appimage
chmod +x nvim.appimage
./nvim-appimage

El fichero de configuración de neovim está en la ruta:

~/.config/nvim/init.vim

Instalación de vim-plug

vim-plug es un gestor de plugins para vim. La instalación de vim-plug se encuentra en su repositorio.

sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs \
       https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'

La instalación de nuevos plugins es realmente sencilla, tan solo tenemos que escribir lo siguiente en el init.vim

call plug#begin()
Plug "scrooloose/nerdtree"
call plug#end()

guardamos el fichero y escribimos el comando

:PlugInstall

Instalación de Coc (Conquer of Completion)

Coc es un motor de autocompletado de código. Tiene soporte para multitud de lenguajes de programación y se integra bastante bien con neovim. Para usar Coc necesitamos tener instalado nodejs

Instalamos Coc con vim-plug

Plug 'neoclide/coc.nvim', {'branch': 'release'}

Para instalar plugins de Coc escribir el comando:

:CocInstall coc-json coc-tsserver

Instalación automática e init.vim bajo git

En este repositorio he realizado un script de instalación automático aparte de mantener el fichero init.vim bajo git. Aquí tenemos el script:

Sustituir las llamadas de pacman al gestor de paquetes de la distribución que estés utilizando

#!/bin/bash

function coc_support {
    sudo pacman -S node
    nvim +"CocInstall \
        coc-marketplace \
        coc-python \
        coc-clangd \
        coc-tsserver \
        coc-json \
        coc-markdownlimit \
        coc-phpactor \
        coc-rls \
        coc-git"
}

#install required packages
sudo pacman -S neovim

mkdir -p ~/.config/nvim/
ln -s $(pwd)/init.vim ~/.config/nvim/init.vim

#install vimplug
sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs \
       https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'

#install all plugins from init.vim
nvim +PlugInstall

coc_support

Notar que realizamos un enlace simbólico desde ~/.config/nvim/init.vim hacia el fichero init.vim del repositorio. De esta forma realizamos los cambios en el fichero del repositorio y neovim lo detecta sin problemas.