Los plugins que uso en Neovim en tiempos de IA

Con el uso de IA, Neovim se ha vuelto para mí más bien un editor para leer código y hacer cambios menores, gracias al agente de IA integrado. Mi forma de usarlo ha cambiado: ahora una parte importante del trabajo consiste en revisar lo que genera el agente, entender los cambios y ajustar los detalles que hagan falta.

Pero igual quería compartir los plugins que tengo en mi configuración, por si a alguien le sirven. Aunque escriba menos código directamente, sigo necesitando buscar archivos, moverme entre funciones, revisar diferencias y editar sin complicarme demasiado.

Los agrupé por función y dejé una breve descripción junto al enlace de cada uno. No hace falta instalar toda la lista: la idea es que encuentres algo útil para tu forma de trabajar.

Autocompletado y snippets en neovim

Para los cambios que sigo haciendo a mano, contar con un buen autocompletado y snippets sigue siendo útil. Esta es la combinación que tengo:

  • nvim-cmp: El motor de autocompletado.
  • cmp-async-path: Completa rutas de archivos de forma asíncrona.
  • cmp-buffer: Sugiere palabras a partir del contenido de los buffers.
  • cmp-nvim-lsp: Conecta las sugerencias del LSP con nvim-cmp.
  • cmp-nvim-lua: Añade autocompletado para la API de Lua de Neovim.
  • cmp_luasnip: Integra los snippets de LuaSnip con nvim-cmp.
  • LuaSnip: El motor para expandir y trabajar con snippets.
  • friendly-snippets: Una colección de snippets para distintos lenguajes.

LSP, formato, linting y depuración

Que parte del código lo escriba un agente no elimina la necesidad de revisar errores, mantener el formato y depurar. Aquí entran estas herramientas:

  • nvim-lspconfig: Configuraciones para conectar los servidores de lenguaje con el cliente LSP de Neovim.
  • mason.nvim: Facilita la instalación y la administración de servidores de lenguaje, formateadores, linters y adaptadores de depuración.
  • conform.nvim: Permite ejecutar formateadores de código directamente desde el editor.
  • formatter.nvim: Otra herramienta para integrar formateadores externos.
  • nvim-lint: Integra linters para mostrar errores y advertencias en el código.
  • nvim-dap: Añade un cliente de depuración para trabajar con puntos de interrupción, la ejecución paso a paso y la inspección de variables.

Edición y navegación en neovim

Esta parte sigue teniendo bastante sentido para mí: si ahora paso más tiempo leyendo código, moverme rápido por él y hacer cambios puntuales importa mucho.

  • vim-commentary: Comenta y descomenta código con pocos comandos.
  • vim-surround: Añade, cambia o elimina comillas, paréntesis, etiquetas y otros delimitadores.
  • vim-exchange: Intercambia dos fragmentos de texto.
  • vim-visual-multi: Permite trabajar con múltiples selecciones y cursores.
  • vim-ReplaceWithRegister: Reemplaza texto con el contenido de un registro.
  • hop.nvim: Permite saltar a distintas posiciones del texto mediante etiquetas.
  • vim-tmux-navigator: Unifica la navegación entre las divisiones de Vim y los paneles de tmux.
  • nvim-hlslens: Mejora la visualización de las coincidencias al buscar dentro de un archivo.
  • hardtime.nvim: Ayuda a corregir hábitos de navegación y a aprovechar mejor los movimientos de Vim.
  • treesj: Divide o une bloques de código entre una y varias líneas.
  • refactoring.nvim: Ofrece operaciones de refactorización, como extraer funciones o variables.
  • vim-import-js: Integra ImportJS para gestionar imports de JavaScript.
  • vim-jsx-pretty: Añade resaltado de sintaxis para JSX.
  • vim-php-refactoring-toolbox: Ofrece herramientas de refactorización para PHP.
  • vim-php-cs-fixer: Integra PHP CS Fixer para corregir el estilo del código PHP.

Archivos, búsquedas y proyectos

Encontrar el archivo correcto suele ser el primer paso para entender un cambio. Estos plugins cubren la exploración, las búsquedas y el manejo de proyectos y sesiones:

  • nvim-tree.lua: Un explorador de archivos en forma de árbol.
  • telescope.nvim: Permite buscar y filtrar archivos, contenido, buffers y otros elementos del editor.
  • neovim-project: Facilita cambiar entre proyectos y recuperar su contexto de trabajo.
  • neovim-session-manager: Guarda y restaura sesiones del editor.
  • vim-rooter: Ajusta el directorio de trabajo a la raíz del proyecto.

Git, tareas y sesiones en neovim

Con un agente haciendo cambios, revisar el diff es una parte importante del trabajo. Aquí también incluyo las herramientas para ejecutar tareas y mantener sesiones:

  • lazygit.nvim: Permite abrir lazygit dentro de Neovim.
  • git-blame.nvim: Muestra información del commit asociado a una línea.
  • gitsigns.nvim: Marca cambios de Git en el editor y permite trabajar con fragmentos del diff.
  • diffview.nvim: Ofrece una interfaz para revisar diferencias entre archivos y consultar su historial.
  • vim-signify: Muestra líneas añadidas, modificadas o eliminadas en el margen.
  • overseer.nvim: Permite ejecutar y administrar tareas, como builds y tests.
  • vim-obsession: Mantiene actualizados los archivos de sesión de Vim.

Interfaz y notificaciones

También hay plugins para hacer más cómoda la lectura, ver mejor lo que está pasando y recordar atajos. En esta categoría aparecen algunas dependencias que usan otros plugins:

  • indent-blankline.nvim: Muestra guías de indentación para seguir la estructura del código.
  • modes.nvim: Añade indicadores visuales de color según el modo del editor.
  • modicator.nvim: Cambia el color del número de la línea actual según el modo.
  • noice.nvim: Modifica la presentación de mensajes, la línea de comandos y otros elementos de la interfaz.
  • nui.nvim: Una biblioteca de componentes de interfaz utilizada por otros plugins.
  • nvim-notify: Presenta las notificaciones en ventanas configurables.
  • nvim-web-devicons: Proporciona iconos para tipos de archivo y otros elementos.
  • which-key.nvim: Muestra las combinaciones de teclas disponibles mientras empiezas a escribir un atajo.
  • menu: Permite crear menús, incluidos submenús, dentro del editor.
  • minty: Añade herramientas para seleccionar y explorar colores.
  • volt: Proporciona la base para crear interfaces interactivas utilizadas por otros plugins de esta lista.

IA, utilidades y Tailwind

Esta es la parte que más conecta con el cambio en mi forma de usar Neovim. La integración del agente convive con utilidades del editor y herramientas para leer estilos:

  • claudecode.nvim: Integra Claude Code con Neovim para compartir contexto del código y revisar los cambios propuestos desde el editor.
  • snacks.nvim: Una colección de utilidades, como terminales y selectores. También sirve de apoyo a la integración de Claude Code.
  • tw-values.nvim: Muestra los valores CSS asociados a las clases de Tailwind de un elemento.

Gestor de plugins, dependencias y tema

Por último, estas son otras piezas de la configuración:

  • plenary.nvim: Una biblioteca de funciones Lua que utilizan varios plugins.
  • lazy.nvim: El gestor para instalar, actualizar y cargar los plugins.
  • onedark.nvim: El tema de colores de la configuración.

La configuración sigue, el uso cambia

Viendo la lista, hay herramientas con funciones que se cruzan: más de una para formato, indicadores de cambios o sesiones. Comparto lo que tengo en mi configuración; no significa que necesites combinar todo esto para usar Neovim.

Lo que más ha cambiado es el peso de cada cosa. Con la IA, buscar, navegar y revisar código ocupa más espacio en mi trabajo. Y para eso sigue siendo útil tener un editor con el que me sienta cómodo.

Si usas alguno de estos plugins o tienes otro que te facilite trabajar con agentes de IA en Neovim, déjalo en los comentarios.

¡Éxitos mejorando tu neovim!

Miguel Useche:
Entrada relacionada