VIM

``

Objetivo y alcance

Vim y Neovim como editores modales de alto rendimiento orientados a:

  • Edición rápida de texto y código
  • Automatización mediante comandos y macros
  • Integración en entornos Unix/Linux y flujos DevOps
  • Uso consistente en terminal, servidores y local

Tareas

  • Acostumbrarse al uso básico (modos, movimiento, edición)
  • Instalar Neovim (nvim)
  • Entender LazyVim y su rol como distribución + gestor de plugins
  • Instalar plugins indispensables
  • Crear una configuración mínima y versionarla (Git)

Conceptos clave de Vim

  • Editor modal: cada tecla tiene significado según el modo activo
  • Filosofía: menos ratón, más teclado
  • Composición de comandos: verbo + objeto
  • Pensado para eficiencia a largo plazo, no curva de aprendizaje corta

Modos de Vim

  • Modo normal
    • Modo por defecto
    • Navegación, borrado, copia, pegado, comandos
  • Modo inserción
    • Escritura de texto
    • Se entra con i, a, o, etc.
  • Modo visual
    • Selección de texto
    • v, V, Ctrl+v
  • Modo comando
    • Acceso con :
    • Guardar, salir, buscar, ejecutar comandos

Uso básico de Vim

Cambiar de modos

  • Esc
    • Sale de inserción o visual
    • Vuelve siempre a modo normal
  • i
    • Entra en modo inserción antes del cursor
  • a
    • Inserta después del cursor
  • o
    • Nueva línea debajo y entra en inserción

Movimiento del cursor

  • Movimiento básico
    • h izquierda
    • j abajo
    • k arriba
    • l derecha
  • Movimiento por palabras
    • w siguiente palabra
    • b palabra anterior
    • e final de palabra
  • Movimiento rápido
    • Usar números para repetir acciones
      • Ejemplo: 9w mueve 9 palabras

Edición básica

  • Borrar
    • x borra carácter
    • dd borra línea
    • dw borra palabra
  • Copiar y pegar
    • yy copia línea
    • p pega después del cursor
    • P pega antes del cursor
  • Deshacer y rehacer
    • u deshacer
    • Ctrl+r rehacer

      Shortcuts salir de vim

  • Esc vuelve a modo normal
  • :w guardar
  • :q salir
  • :wq guardar y salir
  • :q! salir sin guardar

Registros y portapapeles

  • Concepto
    • Vim guarda texto copiado/borrado en registros
    • Permite múltiples historiales de copia
  • Recursos

Configurar Neovim en el entorno

Neovim es la evolución moderna de Vim:

  • Mejor soporte Lua
  • Integración nativa con LSP
  • Comunidad activa y plugins modernos

Instalación de Neovim

  • Instalar versión reciente (v0.10+ recomendado)
  • Preferible vía gestor de paquetes del sistema o binario oficial

LazyVim

  • Distribución de Neovim basada en:
    • Lazy.nvim (gestor de plugins)
    • Configuración modular y opinionada
  • Ventajas
    • Setup rápido
    • Buenas prácticas por defecto
    • Fácil extensión
  • Recurso oficial
    • [🚀 Getting Started LazyVim](https://www.lazyvim.org/)

Plugins y colecciones

LSP y desarrollo

  • LSP (Language Server Protocol)
    • Autocompletado
    • Diagnósticos
    • Go-to-definition
    • Refactors
  • Documentación
    • Lsp - Neovim docs-lsp.html
    • Help - Neovim docs-index.html_nvim-documentation

Recursos de aprendizaje (videos)

Buenas prácticas iniciales

  • Aprender movimientos antes que plugins
  • Memorizar combinaciones básicas
  • Evitar ratón
  • Usar Vim todos los días aunque sea poco tiempo
  • Iterar configuración de forma incremental

VIM — Conceptos Avanzados y Ecosistema

Modelo mental de Vim

  • Vim no es un editor de texto tradicional, es un lenguaje de edición
  • Cada acción se compone de:
    • Operador (qué hacer)
    • Movimiento o texto objeto (sobre qué)
  • Ejemplos mentales
    • “borra hasta el final de la palabra”
    • “cambia dentro de paréntesis”
  • Esto permite:
    • Edición semántica
    • Velocidad sin memorizar cientos de atajos aislados

Operadores y objetos de texto

  • Operadores comunes
    • d borrar
    • c cambiar
    • y copiar
    • > indentar
    • < desindentar
  • Objetos de texto
    • Palabras
      • iw palabra interna
      • aw palabra con espacios
    • Delimitadores
      • i( a( dentro/alrededor de paréntesis
      • i{ a{ bloques
      • i" a" cadenas
  • Ejemplos prácticos
    • ci" cambia el contenido de una cadena
    • da( borra un bloque completo

Búsqueda y navegación avanzada

  • Búsqueda
    • /texto búsqueda hacia adelante
    • ?texto búsqueda hacia atrás
    • n siguiente coincidencia
    • N anterior
  • Navegación estructural
    • % salta entre pares () {} []
    • gg inicio del archivo
    • G final del archivo
    • :{numero} ir a línea concreta
  • Marcas
    • m{letra} crea marca
    • '{letra} vuelve a la línea marcada

Macros

  • Qué son
    • Grabaciones de acciones repetibles
    • Automatización sin scripting
  • Uso básico
    • q{registro} empezar a grabar
    • acciones normales
    • q terminar
    • @{registro} ejecutar
  • Casos de uso
    • Limpieza de datos
    • Refactorizaciones simples
    • Edición repetitiva en múltiples líneas

Buffers, ventanas y pestañas

  • Buffers
    • Archivos abiertos en memoria
    • No dependen de ventanas visibles
  • Ventanas
    • División de pantalla
    • :split horizontal
    • :vsplit vertical
  • Pestañas
    • Colecciones de ventanas
    • Útiles para contextos separados
  • Flujo recomendado
    • Buffers para archivos
    • Ventanas para trabajar en paralelo
    • Pestañas para tareas distintas

Integración con terminal y sistema

  • Terminal embebido
    • :terminal
    • Ideal para Git, scripts y comandos rápidos
  • Portapapeles del sistema
    • Registro +
    • Copiar: "+y
    • Pegar: "+p
  • Uso remoto
    • Vim/Neovim como editor estándar en servidores
    • Edición directa vía SSH

Configuración moderna con Lua

  • Evolución desde Vimscript
  • Ventajas de Lua
    • Más legible
    • Mejor rendimiento
    • Integración nativa en Neovim
  • Conceptos clave
    • init.lua como punto de entrada
    • Configuración modular por archivos
    • Plugins declarativos

Lazy.nvim como gestor de plugins

  • Carga perezosa
    • Plugins solo cuando se necesitan
  • Beneficios
    • Arranque rápido
    • Menos consumo de recursos
  • Enfoque
    • Plugins como módulos funcionales
    • Configuración separada del core

Treesitter

  • Qué es
    • Parser sintáctico incremental
  • Qué aporta
    • Highlighting preciso
    • Navegación por estructura
    • Base para refactors y textobjects avanzados
  • Impacto
    • Vim pasa de editor de texto a editor estructural

LSP en profundidad

  • Capacidades
    • Autocompletado contextual
    • Diagnósticos en tiempo real
    • Formateo
    • Acciones de código
  • Flujo típico
    • Neovim ↔ LSP Server ↔ Lenguaje
  • Ventaja clave
    • Independencia del editor
    • Configuración reutilizable entre proyectos

Debugging en Neovim

  • DAP (Debug Adapter Protocol)
  • Casos de uso
    • Breakpoints
    • Step-by-step
    • Inspección de variables
  • Integración
    • Debug sin salir del editor
    • Flujo cercano a IDEs completos

Git en Vim

  • Integración nativa y plugins
  • Funcionalidades habituales
    • Diff de archivos
    • Blame por línea
    • Staging parcial
  • Filosofía
    • Git como parte del flujo de edición
    • Menos cambio de contexto

Rendimiento y ergonomía

  • Motivos de eficiencia
    • Manos siempre en teclado
    • Menos movimientos cognitivos
  • Ergonomía
    • Reducción de fatiga
    • Atajos consistentes en cualquier entorno
  • A largo plazo
    • Curva de aprendizaje amortizada
    • Productividad acumulativa

Filosofía de aprendizaje continuo

  • Aprender Vim es progresivo
  • No memorizar todo desde el inicio
  • Cada nuevo concepto desbloquea otros
  • El editor se adapta al usuario, no al revés

Relación con otros editores

  • Vim no compite, complementa
  • Puede convivir con:
    • IDEs
    • Editores gráficos
  • Ventaja diferencial
    • Ubicuidad
    • Consistencia
    • Control total del entorno

      Recursos actualizados de Vim y Neovim (2025-2026)

      Estos recursos están actualizados y útiles para aprender, configurar y extender Vim/Neovim en 2025-2026.

Guías prácticas completas

  • Neovim IDE en Linux
    Guía paso a paso para convertir Neovim en un entorno tipo IDE con configuración, plugins y LSP.
    Neovim IDE en Linux
  • Transform Your Neovim into an IDE (guía en inglés)
    Configura Neovim desde cero con Lua, keymaps, LSP y gestor de paquetes. Actualizada con cambios de 2025.
    Transform Your Neovim into an IDE
  • Guía de configuración de Neovim (en español)
    Explica cómo estructurar la configuración en Lua o VimScript y modularizarla por archivos.
    Guía de configuración de Neovim

Configuraciones y snippets útiles

  • Neovim LSP Setup Made Easy (GitHub Gist)
    Configuración rápida de LSP con mason, mason-lspconfig y servidores básicos en Neovim 0.12 (2025).
    Neovim LSP Setup Made Easy
  • Configuración simple para Neovim (Devlog)
    Ejemplo de configuración minimalista para empezar rápido y ampliar. Actualizada a septiembre de 2025.
    Simple Neovim Config

Plugins y ecosistema moderno

  • NeovimCraft
    Catálogo de plugins actualizados al final de 2025, clasificados por categoría (LSP, utilidad, UI, debugging, markdown, note-taking, colorschemes, etc.).
    NeovimCraft

Plugins y proyectos destacados en 2025

  • obsidian-nvim/obsidian.nvim
    Integración Obsidian ↔ Neovim para gestión de notas.
    obsidian.nvim
  • saghen/blink.cmp
    Plugin moderno y rápido para autocompletado.
    blink.cmp
  • karb94/neoscroll.nvim
    Scrolling suave y animado en Neovim.
    neoscroll.nvim
  • b0o/SchemaStore.nvim
    Esquemas JSON/YAML para LSP y validación de configuraciones.
    SchemaStore.nvim
  • ayamir/nvimdots
    Configuración avanzada y bien documentada de Neovim.
    nvimdots
  • sakhnik/nvim-gdb
    Integración de depuración con GDB/LLDB dentro de Neovim.
    nvim-gdb

LSP y flujo de desarrollo

  • Configuración de LSP en Neovim 0.11
    Explicación del LSP nativo y recomendaciones de plugins como mason, nvim-cmp y telescope.
    Configuring Neovim 0.11 LSP
  • Native LSP y debate comunitario 2025
    Discusión sobre el uso de LSP nativo frente a configuraciones antiguas.
    Native LSP discussion

Cursos, tutoriales y formación

  • Curso en Udemy: Curso de Vim y Neovim (2025)
    Curso con prácticas, instalación, configuración, LSP y plugins.
    Curso de Vim y Neovim
  • Curso gratuito: Neovim desde cero
    Curso online con ejercicios breves y certificado.
    Neovim desde cero

Noticias y tendencias

  • This Week in Neovim (#80)
    Newsletter con plugins populares y enlaces a conferencias recientes.
    This Week in Neovim

Comunidad y discusiones relevantes

  • Crear tu propio plugin para Neovim
    Discusión y guía para desarrollar plugins en Lua.
    Crear plugins en Neovim
  • Listas de plugins útiles y flujos de trabajo
    Usuarios comparten configuraciones y recomendaciones actuales.
    Plugins y workflows Neovim

Documentación oficial

  • Documentación integrada accesible desde el editor mediante :help
  • Referencia principal y siempre actualizada para comandos, API y opciones de Vim y Neovim