¿Qué es Neovim?
Neovim es un editor de texto hiper-extensible basado en Vim que tiene como objetivo modernizar y mejorar la experiencia clásica de Vim. Lanzado en 2014 como una bifurcación de Vim, Neovim ha evolucionado desde entonces hasta convertirse en un proyecto independiente con su propia identidad y trayectoria de desarrollo. Si bien mantiene la compatibilidad total con el modelo de edición de Vim, Neovim introduce una base de código más fácil de mantener, mejores configuraciones predeterminadas y una arquitectura de plugins robusta que aprovecha la ejecución asíncrona.
En esencia, Neovim conserva la filosofía de edición modal que ha hecho que Vim sea legendario entre los desarrolladores y los usuarios avanzados. Este enfoque separa la edición de texto en diferentes modos: principalmente el modo normal para la navegación y los comandos, el modo de inserción para escribir texto y el modo visual para seleccionar y manipular bloques de texto. Esta separación permite una manipulación de texto increíblemente eficiente una vez dominada, lo que permite a los usuarios editar texto a la velocidad del pensamiento en lugar de a la velocidad de las pulsaciones de teclas.
Neovim se distingue de los editores de texto tradicionales por su extensibilidad. Proporciona soporte de primera clase para servidores de lenguaje a través del Protocolo de Servidor de Lenguaje (LSP), emulación de terminal integrada y una interfaz de scripting Lua que permite a los desarrolladores crear plugins potentes con una sobrecarga mínima. Estas características posicionan a Neovim no solo como un editor de texto, sino como un entorno de desarrollo personalizable que se puede adaptar a los flujos de trabajo individuales.
Antes de sumergirnos en nuestros comandos de Neovim, me gustaría presentarles Apidog, una plataforma integral de desarrollo de API que se está convirtiendo rápidamente en la alternativa preferida a Postman para muchos desarrolladores.

Si trabaja con frecuencia con API mientras codifica en Neovim, Apidog ofrece una experiencia perfecta para el diseño, la depuración y la documentación de API.

Apidog combina la documentación de la API, las pruebas automatizadas y los servidores simulados en una sola herramienta integrada, lo que la hace perfecta tanto para desarrolladores individuales como para equipos. Su interfaz intuitiva y sus potentes funciones agilizan su flujo de trabajo de API al tiempo que mantienen la compatibilidad con sus colecciones de Postman existentes. Tómese un momento para probar Apidog junto con su configuración de Neovim: la combinación de estas potentes herramientas podría revolucionar su proceso de desarrollo.
¡Ahora, vamos a sumergirnos en esos comandos esenciales de Neovim!
Por qué debería usar Neovim
Rendimiento y eficiencia
La arquitectura de Neovim está diseñada para la velocidad. Al aprovechar la E/S asíncrona, sigue respondiendo incluso cuando ejecuta tareas intensivas como la indexación de código o las operaciones de git. Esto significa que no habrá más congelaciones o retrasos mientras trabaja en archivos grandes o proyectos complejos. El enfoque de edición modal también minimiza el movimiento de la mano, lo que reduce el riesgo de lesiones por esfuerzo repetitivo comunes entre los desarrolladores que pasan horas codificando.
Personalización y extensibilidad
Si bien muchos editores modernos ofrecen opciones de personalización, el enfoque de Neovim es excepcionalmente potente. Cada aspecto del editor se puede configurar según sus preferencias, desde las combinaciones de teclas hasta la apariencia. El robusto ecosistema de plugins le permite ampliar la funcionalidad en prácticamente cualquier dirección: transforme Neovim en un IDE para su lenguaje preferido, un entorno de escritura para la documentación o cualquier otra cosa.
Habilidades a prueba de futuro
Aprender Neovim desarrolla habilidades de edición que trascienden herramientas o entornos específicos. La edición al estilo Vim está disponible como un plugin o modo en casi todos los editores e IDE populares, incluidos VS Code, IntelliJ IDEA e incluso navegadores. Dominar estos comandos crea habilidades transferibles que mejoran su productividad en múltiples plataformas.
Eficiencia de recursos
La mínima huella de recursos de Neovim lo convierte en una excelente opción para el trabajo remoto o los dispositivos de menor potencia. Se inicia instantáneamente y consume significativamente menos memoria que los editores gráficos, lo que deja más recursos disponibles para sus tareas de desarrollo reales.
Comunidad y ecosistema
Neovim ha fomentado una comunidad activa que contribuye continuamente a su mejora. El ecosistema de plugins es rico y diverso, con herramientas disponibles para prácticamente todas las necesidades de desarrollo. Desde la búsqueda difusa y la navegación de archivos hasta la integración de git y el resaltado de sintaxis, la comunidad ha creado soluciones que rivalizan o superan las que se encuentran en los IDE comerciales.
Ética de código abierto
Al elegir Neovim, está adoptando una herramienta de código abierto completa con un proceso de desarrollo transparente. Su editor no está sujeto a los caprichos de una corporación o a cambios repentinos en los modelos de licencia o precios.
Cómo instalar Neovim en Windows, Mac, Linux
Instalación en Windows
Usando Windows Package Manager (winget)
winget install Neovim.Neovim
Usando Chocolatey
choco install neovim
Usando Scoop
scoop install neovim
Instalación manual
- Visite la página de lanzamientos de Neovim en GitHub
- Descargue el archivo ZIP estable más reciente de Windows
- Extraiga el contenido a una ubicación de su elección (por ejemplo,
C:\Program Files\Neovim
) - Agregue el directorio
bin
a su variable de entorno PATH - Verifique la instalación abriendo un símbolo del sistema y escribiendo
nvim --version
Instalación en macOS
Usando Homebrew
brew install neovim
Usando MacPorts
sudo port install neovim
Instalación manual
- Descargue el archivo macOS más reciente de la página de lanzamientos de Neovim en GitHub
- Extraiga la aplicación a su carpeta Aplicaciones
- Opcionalmente, agregue un alias a su archivo de configuración de shell:
alias nvim='/Applications/Neovim.app/Contents/MacOS/nvim'
Instalación en Linux
Ubuntu/Debian
sudo apt update
sudo apt install neovim
Fedora
sudo dnf install -y neovim python3-neovim
Arch Linux
sudo pacman -S neovim
Compilación desde el código fuente
Para las últimas funciones o en distribuciones sin paquetes actualizados:
git clone https://github.com/neovim/neovim
cd neovim
make CMAKE_BUILD_TYPE=RelWithDebInfo
sudo make install
Verificando su instalación
Después de la instalación, abra una terminal o un símbolo del sistema y escriba:
nvim --version
Debería ver un resultado que muestre la versión de Neovim y la información de compilación. Para iniciar Neovim, simplemente escriba:
nvim
Configuración inicial
Neovim almacena su configuración en las siguientes ubicaciones:
- Windows:
%LOCALAPPDATA%\nvim\
- macOS/Linux:
~/.config/nvim/
Cree un archivo init.vim
en este directorio para la configuración de Vimscript o un init.lua
para la configuración de Lua. Muchos usuarios comienzan con una configuración mínima y la construyen a medida que aprenden:
Ejemplo básico de init.vim:
" Basic settings
set number " Show line numbers
set relativenumber " Show relative line numbers
set expandtab " Use spaces instead of tabs
set tabstop=4 " Set tab width to 4 spaces
set shiftwidth=4 " Set shift width to 4 spaces
set autoindent " Enable auto-indentation
set smartindent " Enable smart indentation
set termguicolors " Enable true colors support
Los 100 mejores comandos de Neovim para principiantes
Neovim se ha establecido como un editor de texto potente y extensible para desarrolladores y usuarios avanzados por igual. Basándose en la base de Vim, Neovim ofrece un rendimiento mejorado, una mejor arquitectura de plugins y una comunidad vibrante que mejora constantemente sus capacidades. Tanto si es un veterano experimentado de Vim como si es un recién llegado a la edición modal, tener una referencia de comandos completa a su alcance puede mejorar drásticamente su eficiencia y flujo de trabajo.
Esta hoja de referencia recopila 100 comandos esenciales de Neovim que todo usuario debe conocer, organizados por categoría para una referencia rápida. Desde la navegación básica hasta la manipulación avanzada de texto, estos comandos representan el conjunto de herramientas que hace de Neovim un entorno de edición tan formidable. Dominar incluso un subconjunto de estos comandos aumentará significativamente su productividad y le ayudará a aprovechar todo el potencial de Neovim.
Navegación básica
h
,j
,k
,l
- Mover el cursor a la izquierda, abajo, arriba, derecha (las teclas de movimiento principales en Neovim)w
- Saltar al inicio de la siguiente palabra (la puntuación se considera como palabras)W
- Saltar al inicio de la siguiente PALABRA (palabras separadas por espacios)b
- Saltar al inicio de la palabra anteriorB
- Saltar al inicio de la PALABRA anteriore
- Saltar al final de la palabraE
- Saltar al final de la PALABRA0
- Saltar al inicio de la línea (primera columna)^
- Saltar al primer carácter no en blanco de la línea$
- Saltar al final de la líneagg
- Ir a la primera línea del documentoG
- Ir a la última línea del documento{number}G
- Ir a un número de línea específico{
- Saltar al párrafo/bloque de código anterior}
- Saltar al siguiente párrafo/bloque de códigoCtrl-u
- Mover hacia arriba media pantallaCtrl-d
- Mover hacia abajo media pantallaCtrl-b
- Mover hacia arriba una pantalla completaCtrl-f
- Mover hacia abajo una pantalla completazz
- Centrar el cursor en la pantalla (la línea actual se convierte en la línea central)zt
- Colocar el cursor en la parte superior de la pantallazb
- Colocar el cursor en la parte inferior de la pantalla
Comandos de edición
i
- Entrar en el modo de inserción antes del cursor (para insertar texto)I
- Entrar en el modo de inserción al principio de la líneaa
- Entrar en el modo de inserción después del cursor (añadir)A
- Entrar en el modo de inserción al final de la líneao
- Insertar una nueva línea debajo de la línea actual y entrar en el modo de inserciónO
- Insertar una nueva línea encima de la línea actual y entrar en el modo de inserciónr
- Reemplazar un solo carácter debajo del cursor (sin entrar en el modo de inserción)R
- Entrar en el modo de reemplazo (sobrescribiendo el texto existente)x
- Eliminar el carácter debajo del cursorX
- Eliminar el carácter antes del cursordd
- Eliminar la línea completa (y almacenarla en el registro){number}dd
- Eliminar varias líneasD
- Eliminar desde el cursor hasta el final de la líneayy
oY
- Copiar (yank) la línea completa{number}yy
- Copiar varias líneasy$
- Copiar desde el cursor hasta el final de la líneap
- Pegar después del cursorP
- Pegar antes del cursoru
- Deshacer el último cambioCtrl-r
- Rehacer (deshacer el deshacer)~
- Cambiar el caso del carácter debajo del cursor>>
- Indentar la línea<<
- Desindentar la línea.
- Repetir el último comando (potente para ediciones repetitivas)cc
oC
- Cambiar la línea completa (eliminar la línea y entrar en el modo de inserción)cw
- Cambiar la palabra (eliminar la palabra y entrar en el modo de inserción)c$
oC
- Cambiar hasta el final de la líneaJ
- Unir la línea actual con la siguiente línea
Buscar y reemplazar
/pattern
- Buscar hacia adelante el patrón?pattern
- Buscar hacia atrás el patrónn
- Repetir la búsqueda en la misma direcciónN
- Repetir la búsqueda en la dirección opuesta*
- Buscar hacia adelante la palabra debajo del cursor#
- Buscar hacia atrás la palabra debajo del cursor:%s/old/new/g
- Reemplazar todas las ocurrencias de 'old' con 'new' en todo el archivo:%s/old/new/gc
- Reemplazar todas las ocurrencias con confirmaciones:s/old/new/g
- Reemplazar todas las ocurrencias en la línea actual:noh
- Borrar el resaltado de la búsquedagd
- Ir a la definición local de la palabra debajo del cursorgD
- Ir a la definición global de la palabra debajo del cursor
Modo visual
v
- Entrar en el modo visual carácter por carácter (seleccionar caracteres)V
- Entrar en el modo visual línea por línea (seleccionar líneas completas)Ctrl-v
- Entrar en el modo visual bloque por bloque (seleccionar bloques rectangulares)gv
- Volver a seleccionar la selección visual anterioro
- En el modo visual: Mover al otro extremo de la selecciónO
- En el modo visual de bloque: Mover a la otra esquina del bloqueaw
- Seleccionar una palabra (en el modo visual)ab
- Seleccionar un bloque con () (en el modo visual)aB
- Seleccionar un bloque con {} (en el modo visual)at
- Seleccionar un bloque con etiquetas HTML/XML (en el modo visual)
Operaciones de archivo
:e filename
- Editar un archivo (crear si no existe):w
- Escribir (guardar) el archivo:w filename
- Escribir en el nombre de archivo especificado (guardar como):q
- Salir (falla si hay cambios sin guardar):q!
- Salir sin guardar (descartar los cambios):wq
o:x
- Escribir y salir:saveas filename
- Guardar el archivo como nombre de archivo:r filename
- Insertar el contenido del archivo debajo del cursor:r !command
- Insertar la salida del comando de shell debajo del cursor
Trabajar con ventanas y pestañas
:split
o:sp
- Dividir la ventana horizontalmente:vsplit
o:vs
- Dividir la ventana verticalmenteCtrl-w h/j/k/l
- Navegar entre ventanas (izquierda/abajo/arriba/derecha)Ctrl-w +/-
- Aumentar/disminuir la altura de la ventanaCtrl-w </>
- Aumentar/disminuir el ancho de la ventanaCtrl-w =
- Hacer que todas las ventanas tengan el mismo tamañoCtrl-w o
- Hacer que la ventana actual sea la única:tabnew
- Crear una nueva pestañagt
- Ir a la siguiente pestañagT
- Ir a la pestaña anterior:tabclose
- Cerrar la pestaña actual:tabonly
- Cerrar todas las demás pestañas
Gestión de búferes
:ls
- Listar todos los búferes:b number
- Cambiar al búfer por número:bn
- Siguiente búfer:bp
- Búfer anterior:bd
- Eliminar el búfer (cerrar el archivo):bufdo command
- Ejecutar el comando en todos los búferes:e #
- Editar el archivo alternativo (generalmente el archivo editado anteriormente)
Marcas y saltos
m{a-z}
- Establecer la marca en la posición actual (minúsculas para el archivo local)m{A-Z}
- Establecer la marca en la posición actual (mayúsculas para global)'{mark}
- Saltar a la línea de la marca`{mark}
- Saltar a la posición de la marcaCtrl-o
- Saltar a la posición anterior en la lista de saltosCtrl-i
- Saltar a la posición más reciente en la lista de saltos'.
- Saltar a la posición del último cambio`.
- Saltar a la posición exacta del último cambio
Objetos de texto y movimientos
ci(
- Cambiar dentro de los paréntesisdi"
- Eliminar dentro de las comillas doblesyi]
- Copiar dentro de los corchetesva{
- Seleccionar visualmente alrededor de las llaves (incluidas las llaves)dap
- Eliminar alrededor del párrafocit
- Cambiar dentro de la etiqueta HTML/XMLdiw
- Eliminar dentro de la palabradaw
- Eliminar alrededor de la palabra (incluidos los espacios)dab
- Eliminar alrededor del bloque (paréntesis)daB
- Eliminar alrededor del bloque (llaves)
Comandos de plegado
zf
- Crear pliegue (en el modo visual)zo
- Abrir el pliegue debajo del cursorzc
- Cerrar el pliegue debajo del cursorza
- Alternar el pliegue debajo del cursorzR
- Abrir todos los pliegueszM
- Cerrar todos los pliegueszj
- Mover al siguiente plieguezk
- Mover al pliegue anterior
Características específicas de Neovim
:terminal
o:term
- Abrir la terminal integradaCtrl-\ Ctrl-n
- Salir del modo terminal al modo normal:checkhealth
- Ejecutar la herramienta de diagnóstico de Neovim:lua require('telescope.builtin').find_files()
- Usar el plugin Telescope para encontrar archivos:TSInstall language
- Instalar el analizador treesitter para un idioma:LspInfo
- Mostrar el estado del Protocolo de Servidor de Lenguaje:TSBufToggle highlight
- Alternar el resaltado de treesitter:highlight
- Mostrar los grupos de resaltado actuales:Tutor
- Iniciar el tutorial integrado de Neovim:help nvim-features
- Ver las características específicas de Neovim
Características avanzadas
q{a-z}
- Grabar macro en el registro@{a-z}
- Reproducir macro desde el registro@@
- Repetir la última macro reproducidag&
- Repetir la última sustitución en todas las líneas:norm cmd
- Ejecutar el comando de modo normal en las líneas seleccionadasgf
- Ir al archivo debajo del cursorCtrl-a
- Incrementar el número debajo del cursorCtrl-x
- Decrementar el número debajo del cursor:sort
- Ordenar las líneas seleccionadas!motion command
- Filtrar el texto a través de un comando externo
Conclusión
El poder de Neovim reside en su extenso conjunto de comandos, y dominar estos comandos mejorará significativamente su eficiencia de edición. Recuerde que la competencia viene con la práctica: comience incorporando algunos comandos nuevos en su flujo de trabajo cada día, y pronto se convertirán en algo natural.
La filosofía de edición modal de Neovim permite una manipulación de texto increíblemente precisa y eficiente una vez que desarrolle la memoria muscular para estos comandos. Considere la posibilidad de crear sus propias asignaciones de teclas personalizadas para las operaciones frecuentes para aumentar aún más su productividad.
A medida que crezca su competencia, es posible que desee explorar el ecosistema de plugins para ampliar la funcionalidad de Neovim. Los plugins populares como Telescope para la búsqueda difusa, las configuraciones LSP para la inteligencia de código y Treesitter para el resaltado de sintaxis mejorado pueden transformar Neovim en un potente entorno de desarrollo integrado adaptado a sus necesidades específicas.
Para aquellos que trabajan con API mientras usan Neovim, no olviden probar Apidog como una alternativa integral a Postman. Su interfaz optimizada y sus potentes funciones complementan el enfoque de Neovim centrado en la eficiencia para crear un entorno de desarrollo óptimo.
Ya sea que esté escribiendo código, documentando proyectos o editando archivos de configuración, estos comandos de Neovim proporcionan la base para una experiencia de edición de texto que crece con sus necesidades y se adapta a su flujo de trabajo personal. Con el tiempo y la práctica, descubrirá que la curva de aprendizaje inicial de Neovim paga dividendos extraordinarios en productividad a largo plazo y alegría de edición.
¡Feliz edición!