Instalación y configuración inicial de Neovim

Instalación y configuración inicial de Neovim

Franco
· 4 min de lectura

Me encuentro una vez más regresando a Neovim y quisiera dejar el registro de mi configuración definitiva.

Instalación de Neovim

Mi sistema operativo es Fedora 41 y, para comenzar, realizaré la instalación de Neovim con el siguiente comando:

sudo dnf install neovim

Configuración inicial de Neovim

Una vez instalado Neovim, comenzaré por definir las carpetas para la configuración. Esto lo realizaremos en la carpeta ~/.config/nvim, y dentro de ella crearemos la carpeta lua, además de config dentro de lua.

Dentro de la carpeta config, crearemos el archivo settings.lua, el cual tendrá la configuración básica de Neovim, como números de línea, tabulaciones, portapapeles, etc. A continuación, dejo el contenido del archivo:

~/.config/nvim/config/settings.lua

-- Configuración básica del editor
local opt = vim.opt

-- Interfaz
opt.number = true              -- Mostrar números de línea
opt.relativenumber = true      -- Líneas relativas para mejor navegación
opt.signcolumn = "yes"         -- Columna para símbolos como diagnósticos
opt.cursorline = true          -- Resaltar la línea actual

-- Búsqueda
opt.ignorecase = true          -- Ignorar mayúsculas/minúsculas en búsquedas
opt.smartcase = true           -- Respetar mayúsculas si se usan en búsqueda
opt.incsearch = true           -- Resaltar coincidencias mientras escribes

-- Espaciado
opt.tabstop = 4                -- Tamaño de tabulaciones
opt.shiftwidth = 4             -- Nivel de sangría
opt.expandtab = true           -- Usar espacios en lugar de tabulaciones

-- Portapapeles
opt.clipboard = "unnamedplus"  -- Usar portapapeles del sistema

Para que esta configuración inicial sea tomada en cuenta, este archivo debe ser llamado desde el archivo init.lua. Para ello, lo crearemos en la raíz de ~/.config/nvim/.

~/.config/nvim/init.lua

-- Carga la configuración básica de Neovim
require('config.settings')

Finalmente, la estructura de la carpeta ~/.config/nvim/ quedará de la siguiente manera:

├── init.lua
└── lua
    └── settings.lua

Instalación de un administrador de plugins

Para instalar algunos plugins y mejorar Neovim con funcionalidades adicionales, es necesario contar con un administrador de plugins. En este caso, instalaremos Lazy.nvim.

Nota:
lazy.nvim es un moderno gestor de plugins para Neovim.

Para ello, crearemos el archivo lazy.lua dentro de la carpeta config.

~/.config/nvim/config/lazy.lua

-- Inicialización de Lazy.nvim
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"

-- Si Lazy.nvim no está instalado, lo clonamos desde GitHub
if not (vim.uv or vim.loop).fs_stat(lazypath) then
  local lazyrepo = "https://github.com/folke/lazy.nvim.git"
  local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
  if vim.v.shell_error ~= 0 then
    vim.api.nvim_echo({
      { "Error al clonar Lazy.nvim:\n", "ErrorMsg" },
      { out, "WarningMsg" },
      { "\nPresiona cualquier tecla para salir..." },
    }, true, {})
    vim.fn.getchar()
    os.exit(1)
  end
end
vim.opt.rtp:prepend(lazypath)

-- Definimos las teclas líderes (mapleader) antes de cargar los plugins
vim.g.mapleader = " "
vim.g.maplocalleader = "\\"

-- Configuración de Lazy.nvim
require("lazy").setup({
  spec = {
    -- Aquí se pueden importar plugins adicionales
    -- { import = "plugins.example" }, -- Comentado por ahora
  },
  -- Habilitamos la actualización automática de plugins
  checker = { enabled = true },
})

Finalmente, llamamos al archivo lazy.lua desde init.lua:

~/.config/nvim/init.lua

-- Carga la configuración básica de Neovim
require("config.settings")

-- Carga el administrador de plugins Lazy.nvim
require("config.lazy")

Así queda la estructura completa:

├── init.lua
└── lua
    └── config
        ├── lazy.lua
        └── settings.lua

Instalación y configuración del corrector ortográfico

Ahora configuraremos Neovim para que tenga soporte de corrección ortográfica.

Editaremos el archivo settings.lua para incluir las opciones necesarias:

~/.config/nvim/config/settings.lua

-- Configuración básica del editor
local opt = vim.opt

-- Interfaz
opt.number = true              -- Mostrar números de línea
opt.relativenumber = true      -- Líneas relativas para mejor navegación
opt.signcolumn = "yes"         -- Columna para símbolos como diagnósticos
opt.cursorline = true          -- Resaltar la línea actual

-- Búsqueda
opt.ignorecase = true          -- Ignorar mayúsculas/minúsculas en búsquedas
opt.smartcase = true           -- Respetar mayúsculas si se usan en búsqueda
opt.incsearch = true           -- Resaltar coincidencias mientras escribes

-- Espaciado
opt.tabstop = 4                -- Tamaño de tabulaciones
opt.shiftwidth = 4             -- Nivel de sangría
opt.expandtab = true           -- Usar espacios en lugar de tabulaciones

-- Portapapeles
opt.clipboard = "unnamedplus"  -- Usar portapapeles del sistema

-- Corrector ortográfico
opt.spell = true -- Habilita la verificación ortográfica
opt.spelllang = { "es", "en_us" } -- Idiomas para la verificación ortográfica

-- Habilitar el corrector ortográfico en archivos de texto y markdown
vim.api.nvim_create_autocmd("FileType", {
  pattern = { "markdown", "text" },
  callback = function()
    vim.opt_local.spell = true
    vim.opt_local.spelllang = { "es", "en_us" }
  end,
})

Cuando abramos Neovim, este verificará si existen los archivos de idiomas. En caso de que no existan, mostrará mensajes para que los descarguemos.

Este sistema subrayará las palabras con errores. Para corregirlas:

  1. Nos posicionamos sobre la palabra incorrecta.
  2. Presionamos z=, lo que mostrará una lista de sugerencias.
  3. Ingresamos el número de la opción adecuada y presionamos Enter.

Photo by charlesdeluvio on Unsplash

#neovim #development #configuracion
F

Franco

Transformando ideas en experiencias digitales excepcionales. Especialistas en desarrollo web, arquitectura de software y soluciones tecnológicas innovadoras.

Artículos relacionados

Explora más contenido similar basado en temas relacionados