Skip to content

🛠️ Guía Maestra de Neovim (Editor Principal)

OhMyConfig utiliza el núcleo de LazyVim como motor base de alto rendimiento, delegando el mantenimiento upstream de plugins a la comunidad mientras preserva una capa de usuario limpia y personalizada bajo la estética Tokyonight Night con transparencia adaptativa para Ghostty.

text
config/nvim/
├── init.lua                      # Entrada principal (Bootstrap de LazyVim)
├── lazyvim.json                  # Registro de módulos y lenguajes activos (LazyExtras)
└── lua/
    ├── config/
    │   ├── options.lua           # Opciones nativas (números híbridos, undo persistente, tabs)
    │   ├── keymaps.lua           # Atajos de navegación, splits y gestión visual
    │   ├── autocmds.lua          # Eventos y hooks personalizados
    │   └── lazy.lua              # Bootstrap de LazyVim y carga de módulos
    └── plugins/
        ├── colorscheme.lua       # Tema Tokyonight Night con transparencia adaptativa
        ├── neo-tree.lua          # Símbolos limpios de estado de Git en el explorador
        └── neogen.lua            # Generador de docstrings estructurados (JSDoc, TSDoc, LuaDoc)

1. Conceptos Fundamentales: Modos y Tecla Leader

Neovim es un editor modal: cambiás de modo según lo que quieras hacer.

┌────────────────────────────────────────────────────────────────────────┐
│                          LOS 4 MODOS CLAVE                             │
├──────────────────┬──────────────────┬─────────────────┬────────────────┤
│  NORMAL (<Esc>)  │   INSERT (`i`)   │  VISUAL (`v`)   │  COMANDO (`:`) │
│ Navegación, corte│ Escritura de     │ Selección de    │ Guardar (:w),  │
│ y comandos rápidos│ texto estándar   │ texto y bloques │ salir (:q), etc│
└──────────────────┴──────────────────┴─────────────────┴────────────────┘
  • Abrir Neovim: v o v <archivo> desde cualquier terminal.
  • Tecla <leader>: La barra espaciadora (<Space>).
  • Which-Key: Al tocar <Space> en modo normal, tras 200 ms se abre una ventana emergente recordándote todas las opciones.
  • Regla de Oro: Al terminar de escribir, tocá <Esc> para volver al Modo Normal.

2. Moverse por el Código a Máxima Velocidad

Qué querés hacerAtajo en Modo NormalExplicación
Moverse 1 posiciónh / j / k / lIzquierda (h), Abajo (j), Arriba (k), Derecha (l)
Saltar de palabra en palabraw / bSiguiente palabra (w), Palabra anterior (b)
Ir al inicio / fin de la línea0 / $0 primer carácter, $ final de línea
Ir al inicio / fin del archivogg / Ggg primera línea, G última línea
Saltar N líneas con números relativos5j, 12k, etc.Mirás el número en el margen izquierdo y saltás exacto
SALTO INSTANTÁNEO EN PANTALLA (Flash)s + 2 letras + tecla guíaSaltás a cualquier palabra visible en el monitor en 1 ms
Selección incremental de códigoCtrl + SpaceExpande: variable $\rightarrow$ línea $\rightarrow$ función $\rightarrow$ clase

3. Ventanas, Splits y Explorador de Archivos

Qué querés hacerAtajoExplicación
Abrir / Ocultar Explorador de Archivos<Space> + eAbre el panel lateral resaltando el archivo actual
Ver Estado de Git en el Explorador<Space> + geAbre el árbol mostrando solo archivos modificados
Moverse al panel izquierdo (Explorador)Ctrl + hCambia el foco del código al explorador lateral
Moverse al panel derecho (Editor)Ctrl + lVuelve del explorador al código
Moverse a panel inferior / superiorCtrl + j / Ctrl + kNavega entre ventanas divididas horizontalmente
Redimensionar panelesCtrl + FlechasAjusta el ancho o alto de la ventana activa

Atajos rápidos DENTRO del Explorador:

  • l o <Enter>: Abre el archivo (o entra a una carpeta).
  • h: Cierra/contrae la carpeta.
  • a: Crear archivo o carpeta (terminar con / para carpeta).
  • d: Borrar | r: Renombrar | c / m: Copiar / Mover.
  • P: Vista previa flotante | H: Mostrar ocultos (.dotfiles) | ?: Ayuda completa.

Íconos de Estado de Git en el Árbol:

ÍconoEstado en GitSignificado
?UntrackedArchivo nuevo que todavía no agregaste con git add
UnstagedArchivo con modificaciones pendientes de staging
StagedArchivo agregado al staging (git add) listo para commit
+AddedArchivo recién creado y agregado al staging
RenamedArchivo renombrado
DeletedArchivo borrado
IgnoredArchivo ignorado por .gitignore
ConflictConflicto de merge pendiente de resolución

4. Pestañas Superiores (Buffers), Guardado y Deshacer

Qué querés hacerAtajo / ComandoExplicación
Guardar archivo actual<Space> + w (o :w)Guarda los cambios en disco
Cerrar pestaña actual limpiamente<Space> + bdCierra el archivo sin dejar pestañas [No Name]
Cerrar todas las demás pestañas<Space> + boCierra todos los buffers excepto el actual
Siguiente / Anterior pestañaShift + l / Shift + hNavega por la barra superior de pestañas
Elegir pestaña interactivamente<Space> + bpTeclas guía para saltar a cualquier pestaña
Cerrar ventana / split<Space> + q (o :q)Cierra la ventana activa
DESHACER (Undo Persistente)uDeshace cambios (incluso tras apagar la PC)
REHACER (Redo)Ctrl + rRehace el cambio deshecho
Descartar cambios y recargar:e!Vuelve a leer el archivo desde el disco
Salir de Neovim descartando todo:qa!Cierra todas las ventanas sin guardar

5. Copiar, Cortar, Pegar y Portapapeles de macOS

🌐 Sincronización Total: Lo que copies con y queda en el portapapeles de macOS (Cmd + V en Chrome/Slack), y lo que copies afuera con Cmd + C se pega en Neovim con p.

AcciónModo NormalModo Visual (v)
Copiar toda la líneayy
Copiar palabra actualyiw (Yank Inside Word)
Copiar bloque o párrafoyap (Yank Around Paragraph)
Copiar texto seleccionadoSeleccioná y tocá y
Cortar / Borrar toda la líneadd
Cortar / Borrar palabra actualdiw
Cortar texto seleccionadoSeleccioná y tocá d
Pegar después / antes del cursorp / P
Reemplazar selección pegandoSeleccioná texto y tocá p (pegado seguro)

6. Búsqueda y Reemplazo

A. Buscar dentro del archivo actual

  • /palabra + <Enter>: Buscar hacia adelante | ?palabra + <Enter>: Buscar hacia atrás.
  • n: Siguiente coincidencia | N: Coincidencia anterior.
  • *: Busca la palabra del cursor hacia adelante | #: Hacia atrás.
  • <Esc>: Limpia el resaltado amarillo de búsqueda.
  • <Space> + /: Buscador difuso interactivo en el archivo (Telescope).

B. Reemplazar una Selección o Palabra

  • Reemplazar selección escribiendo: Seleccioná con v $\rightarrow$ presioná c $\rightarrow$ escribí lo nuevo.
  • Cambiar palabra actual: ciw $\rightarrow$ borra la palabra y te deja escribiendo.
  • Cambiar contenido entre comillas: ci" o ci'.
  • Cambiar contenido entre paréntesis/llaves: ci( o ci{.

C. Reemplazar Todas las Coincidencias en el Archivo Actual

  • Reemplazar en todo el archivo: :%s/antiguo/nuevo/g
  • Reemplazar pidiendo confirmación: :%s/antiguo/nuevo/gc (y = sí, n = no, a = todas, q = cancelar).
  • Reemplazar solo la palabra exacta: :%s/\<antiguo\>/nuevo/g
  • Super-Tip para la palabra del cursor: Escribí :%s/ $\rightarrow$ tocá Ctrl + r y luego Ctrl + w $\rightarrow$ /nuevo/g $\rightarrow$ <Enter>.

D. Reemplazar en Todo el Proyecto (Multi-archivo)

  • 1. Renombrar Variable / Función con LSP: Parate sobre el identificador y presioná <Space> + cr (Code Rename).
  • 2. Buscar y Reemplazar Texto Libre en Todo el Proyecto (TUI): Presioná <Space> + sr (Search & Replace con Grug-Far).
  • 3. Reemplazo masivo por consola: sd 'antiguo' 'nuevo' src/**/*.ts.

7. Inteligencia de Código (LSP) y Autocompletado

Qué querés hacerAtajoExplicación
Ir a la definición de una función/variablegdSalta a donde se creó (Go to Definition)
Ver referencias / dónde se usagrLista todos los usos del símbolo con Telescope
Ver documentación y tipos flotantesKMuestra el docstring y tipos de la función (Hover)
Renombrar símbolo en todo el proyecto<Space> + crRenombra la variable/función de forma segura (Code Rename)
Acciones de código / Correcciones rápidas<Space> + caMenú para importar módulos o corregir errores
Formatear el archivo actual<Space> + cfAplica Prettier, Stylua, Ruff/Black, etc.
Ver error / advertencia de la línea<Space> + cdMuestra el diagnóstico en ventana flotante
Saltar al error siguiente / anterior]d / [dNavega por los errores de sintaxis
  • <Tab> / <S-Tab>: Moverse por las sugerencias.
  • <Enter>: Aceptar y autocompletar.
  • Ctrl + Space: Abrir/alternar menú y documentación flotante.
  • Ctrl + e: Cerrar menú de autocompletado.

8. Documentación Automática, Comentarios y Envolturas

  • Generador de Documentación (neogen):
    • <Space> + cn: Genera la plantilla de documentación oficial (JSDoc/TSDoc, Google Docstrings, LuaDoc) con parámetros y tipos.
    • <Space> + cnc: Documentar clase | <Space> + cnt: Documentar tipo/interfaz.
    • <Tab>: Salta entre los campos autogenerados para escribir las descripciones.
  • Comentarios Rápidos Multilenguaje (ts-comments):
    • gcc: Comentar / Descomentar línea actual en modo normal.
    • gc: Comentar / Descomentar bloque seleccionado en modo visual.
  • Manipulación de Envolturas (mini.surround):
    • gsa: Envolver palabra (gsa + iw + " $\rightarrow$ "palabra").
    • gsd: Borrar envoltura (gsd" sobre "hola" $\rightarrow$ hola).
    • gsr: Reemplazar envoltura (gsr'" sobre 'texto' $\rightarrow$ "texto").

9. GitLens y Control de Cambios en Vivo

Qué querés hacerAtajoExplicación
Saltar al siguiente cambio de Git]cSalta al próximo bloque modificado (Next Hunk)
Saltar al cambio anterior de Git[cSalta al bloque modificado anterior (Prev Hunk)
Ver Diff flotante de la línea<Space> + gpVista previa emergente de qué cambió
Git Blame detallado en ventana<Space> + gbMuestra el commit completo y autor
Alternar Git Blame en línea (Toggle)<Space> + gBActiva / desactiva el texto al final de la línea
Ver Diff lado a lado contra HEAD<Space> + gdAbre división lateral con diff de Git
Hacer Staging del bloque modificado<Space> + ghsAgrega solo ese cambio al staging area
Descartar cambios de este bloque<Space> + ghrRevierte (Reset) solo esas líneas
Descartar TODOS los cambios del archivo<Space> + gRReestablece el archivo completo

10. Activación Dinámica de Lenguajes y Plugins (LazyExtras)

Qué querés hacerAtajo / ComandoExplicación
ACTIVAR / DESACTIVAR LENGUAJES Y EXTRAS<Space> + px (o :LazyExtras)Menú visual con casillas: tocás x para encender o apagar TypeScript, Python, Docker, Tailwind, Rust, Go, etc.
Dashboard de Plugins (Lazy UI)<Space> + pl (o :Lazy)Ver estado y velocidad de arranque de plugins en ms
Dashboard de Servidores (Mason UI)<Space> + pm (o :Mason)Instalar o actualizar Language Servers y Linters
Restaurar Sesión del Proyecto<Space> + qsAbre ventanas, pestañas y cursores donde los dejaste
Restaurar Última Sesión de Neovim<Space> + qlRestaura la última sesión cerrada
Actualizar todos los plugins<Space> + puEjecuta :Lazy update

OhMyConfig — Publicado bajo licencia MIT.