neovim

Instalar con homebrew

brew install neovim

Actualizar con homebrew

brew update
brew upgrade neovim

Ubicación del archivo de configuración

$HOME/.config/nvim/init.vim

Algunos directorios utilizados por nvim

$HOME/.config/nvim
$HOME/.local/share/nvim

Si al hacer

:echo has('python3')

Retorna 0 falta instalar

pip3 install neovim

Diagnostics (LSP)

Los diagnósticos del LSP se renderizan como virtual text al final de la línea y se truncan si no caben en el ancho de la ventana. Para verlos completos:

Defaults útiles de Neovim:

Mapeo propio (en ~/.config/nvim/lua/init.lua):

vim.keymap.set("n", "<leader>dq", function()
  vim.diagnostic.setqflist()
end, { desc = "Diagnostics → quickfix" })

Inspeccionar virtual text / extmarks

Para saber qué plugin genera un texto virtual en una línea (índice base 0):

:lua =vim.inspect(vim.api.nvim_buf_get_extmarks(0, -1, {13,0}, {13,-1}, {details=true}))
:lua =vim.api.nvim_get_namespaces()

El ns_id del primer comando cruzado con el segundo revela el namespace (y por tanto el plugin) responsable.

Troubleshooting

Neovim 0.12 en macOS 12 Apple Silicon

Jueves 11 junio 2026.

Registro de una actualización. Este procedimiento permite usar una versión reciente de Neovim sin actualizar macOS ni Xcode. Las fórmulas y requisitos de Homebrew pueden cambiar, por lo que conviene reintentar primero la instalación normal.

Homebrew no puede compilar una dependencia

Al actualizar de Neovim 0.10.2 a 0.12.3 en macOS 12 (Monterey), Homebrew intentó compilar varias dependencias porque esta versión de macOS tiene soporte Tier 3. La instalación falló al compilar gettext 1.0:

spit.c:39:10: fatal error: 'json.h' file not found
make: *** [all] Error 2

El error ocurrió en una dependencia de la fórmula, no al compilar Neovim. Como alternativa se utilizó el binario oficial precompilado para macOS arm64:

version=0.12.3

mkdir -p "$HOME/opt/src" "$HOME/opt/bin"
curl -LO "https://github.com/neovim/neovim/releases/download/v${version}/nvim-macos-arm64.tar.gz"
xattr -c nvim-macos-arm64.tar.gz
tar xzf nvim-macos-arm64.tar.gz
mv nvim-macos-arm64 "$HOME/opt/src/nvim-${version}"
ln -sfn "$HOME/opt/src/nvim-${version}/bin/nvim" "$HOME/opt/bin/nvim"

$HOME/opt/bin debe aparecer antes que Homebrew en PATH. Verificar qué binario se está ejecutando:

command -v nvim
nvim --version

Revisar plugins después de actualizar Neovim

Una actualización mayor de Neovim puede exponer plugins antiguos que todavía usan APIs eliminadas u obsoletas. En este caso aparecieron los siguientes problemas.

nvim-treesitter

Una versión antigua de nvim-treesitter fallaba durante el resaltado:

query_predicates.lua: attempt to call method 'parent' (a nil value)

El repositorio fue archivado el 3 de abril de 2026 y su rama principal contiene una reescritura incompatible con la configuración anterior.

Se eliminó el plugin y su bloque setup.

Deshabilitar Tree-sitter puede afectar resaltado, indentación o folds, pero no deshabilita gopls, rename, definiciones, referencias ni diagnósticos LSP.

vim-go

Una versión de vim-go de 2024 fallaba al abrir archivos Go:

E519: Option not supported: noshellslash

El plugin ya había corregido este problema. Fue suficiente actualizarlo:

:PlugUpdate vim-go
nvim-lspconfig

La forma require('lspconfig').gopls.setup() está obsoleta en Neovim 0.11 o superior. Después de actualizar nvim-lspconfig, gopls se habilitó con la API actual:

vim.lsp.enable("gopls")
Telescope

Telescope 0.1.8 funcionaba, pero generaba advertencias por llamadas a APIs LSP obsoletas:

client.supports_method is deprecated
position_encoding param is required in vim.lsp.util.make_position_params

Se actualizó Telescope a 0.2.2 junto con plenary.nvim:

Plug 'nvim-lua/plenary.nvim'
Plug 'nvim-telescope/telescope.nvim', { 'tag': 'v0.2.2' }
:PlugUpdate telescope.nvim plenary.nvim

Validación

Abrir un archivo Go dentro de un módulo y ejecutar:

:LspInfo
:checkhealth vim.lsp
:checkhealth telescope
:checkhealth vim.deprecated

Referencias