Comandos vi de Linux: los 3 modos de Vim y el modo visual

Aviso de afiliados v3.1
Aviso de afiliados v3.2 (móvil)
Entorno de pruebaFamilia RHELAlmaLinux 9.8Cuenta rootVerificado el 2026-10-07

Abrir vi y ver que no se escribe nada, o cerrar la ventana porque no sabes cómo salir: casi todo el que toca un servidor por primera vez pasa por esto alguna vez. El comando vi de Linux, que separa el modo normal del modo inserción, solo pide saber en qué modo estás; lo demás son unas pocas teclas. En este artículo resumo en tablas los tres modos y los comandos de cada uno, y puedes probar vi tú mismo en un servidor virtual dentro del navegador.

En AlmaLinux 9.8, vi y vim vienen del paquete vim 8.2, y las pantallas y mensajes de este artículo se abrieron con vim. Si no está instalado, instálalo con [dnf -y install vim-enhanced].

Diagrama del cambio entre los tres modos de vi Comando vi de Linux: diagrama de los tres modos

✅ Los tres modos de vi

En vi, la misma tecla hace cosas distintas según el modo. El archivo se abre en modo normal; con i entras en modo inserción para escribir, con Esc vuelves y con dos puntos [:] pasas al modo última línea para guardar y salir.

ModoTecla para entrarTarea
Modo normalvi empieza aquí · Esc desde otro modoMover el cursor, borrar, copiar, pegar, deshacer
Modo insercióni a I A o OEscribir texto. Abajo aparece [-- INSERT --]
Modo última línea:Guardar, salir, sustituir, números de línea. Abajo aparece :
Modo visualv V Ctrl-vSeleccionar un rango y luego borrar, copiar o insertar en bloque

Hay tres formas de abrir un archivo desde la consola.

ComandoDescripción
vi archivoAbre el archivo en modo normal. Si no existe, lo crea y muestra [New]
vi +20 archivoAbre con el cursor en la línea 20
view archivo= vi -RAbre en solo lectura. Al editar sale el aviso [W10] y al guardar, [E45]

Escribe [vi httpd.conf] en el servidor virtual de abajo para abrir vi; el menú de la izquierda pasa a mostrar los comandos de vi. Al pulsar un chip, esa tecla entra en la pantalla, y también puedes escribirla con el teclado.

Simulador de comandos vivim 8.2
[root@server work]#
Funciona solo en tu navegador y no toca archivos reales. Abre primero un archivo con vi httpd.conf y el menú de la izquierda pasará a mostrar los comandos de vi. Al pulsar un chip, esa tecla se escribe en la pantalla, y también puedes teclearla. Tras guardar y salir con :wq, comprueba el resultado con cat; si algo se enreda, pulsa [Empezar de nuevo]. Prueba tú mismo el resto de teclas de las tablas.

✅ Resumen de comandos vi de Linux

🔲 Mover el cursor

TeclaDescripción
h j k l← ↓ ↑ →Mover un carácter. También con las flechas
0 · ^Inicio de línea (0) · primer carácter no blanco (^)
$Fin de línea
w · b · eInicio de la palabra siguiente · inicio de la anterior · final de la siguiente
gg · GPrimera · última línea del archivo
20Gigual que :20Ir a la línea 20. Cambia el número para ir a otra
H · M · LLínea superior · central · inferior de la pantalla
Ctrl-f · Ctrl-bUna pantalla abajo · arriba
Ctrl-d · Ctrl-uMedia pantalla abajo · arriba

🔲 Entrar en modo inserción

Entres con la tecla que entres, pulsa Esc al terminar de escribir. cw, cc, C y s borran y pasan directamente al modo inserción, así que corregir una palabra o una línea es más rápido que pulsar x e i por separado.

TeclaDescripción
i · aEscribir antes (i) · después (a) del cursor
I · AEscribir al inicio (I) · al final (A) de la línea
o · OAbrir una línea vacía debajo (o) · encima (O) y escribir
cwBorrar desde el cursor hasta el final de la palabra y escribir
ccBorrar la línea entera y escribir
CBorrar desde el cursor hasta el final de la línea y escribir
sBorrar un carácter y escribir
EscTerminar de escribir y volver al modo normal

🔲 Borrar y editar

Si pones una tecla de movimiento después de d, se borra ese rango. dw borra una palabra, dd una línea y dG hasta el final del archivo; un número delante lo repite esas veces.

TeclaDescripción
x · XBorrar el carácter bajo el cursor (x) · el anterior (X). 3x borra tres
dwBorrar desde el cursor hasta el final de la palabra
ddBorrar la línea. 3dd borra tres líneas
D= d$Borrar desde el cursor hasta el final de la línea
d0Borrar desde el inicio de la línea hasta el cursor
dGBorrar desde la línea actual hasta el final del archivo
:6d · :6,10dBorrar la línea 6 · borrar las líneas 6–10
JUnir la línea de abajo al final de la actual
rSustituir el carácter bajo el cursor por la siguiente tecla
~Cambiar mayúsculas/minúsculas
>> · <<Sangrar · quitar sangría de la línea

🔲 Copiar, pegar y deshacer

Lo borrado también se puede pegar con p como si se hubiera copiado, así que pulsar dd y luego p baja una línea. u retrocede varios pasos y Ctrl-r rehace lo deshecho.

TeclaDescripción
yyCopiar la línea. 3yy copia tres líneas
ywCopiar desde el cursor hasta el final de la palabra
p · PPegar debajo (p) · encima (P). Si se copiaron caracteres, tras · antes del cursor
:1 co 7igual que :1 t 7Copiar la línea 1 debajo de la 7
:1,7 co 8Copiar las líneas 1–7 debajo de la 8
:1 m 8Mover la línea 1 debajo de la 8
uDeshacer. Púlsalo varias veces para seguir retrocediendo
Ctrl-rRehacer lo deshecho
.Repetir el último cambio

🔲 Buscar y sustituir

La sustitución se hace en el modo última línea. Sin rango afecta solo a la línea actual, con [%] a todo el archivo, y sin g al final solo cambia la primera coincidencia de cada línea.

TeclaDescripción
/textoBuscar hacia abajo desde el cursor. Al llegar al final sigue desde el principio: [search hit BOTTOM, continuing at TOP]
?textoBuscar hacia arriba desde el cursor
n · NSiguiente resultado en la misma dirección (n) · en la contraria (N)
*Buscar hacia abajo la palabra bajo el cursor
:s/old/new/El primer old de la línea actual por new
:s/old/new/gTodos los old de la línea actual por new
:%s/old/new/gTodos los old del archivo por new
:10,20s/old/new/gTodos los old de las líneas 10–20 por new
:%s/old/new/gcPreguntar en cada cambio (y cambiar · n saltar · a todos · q salir)

🔲 Guardar, salir y números de línea

TeclaDescripción
:wGuardar. Al terminar: [36L, 1094B written]
:w archivoGuardar con otro nombre. El archivo original no cambia
:wq= :⁠x = ZZGuardar y salir
:qSalir. Si hay cambios sin guardar: [E37: No write since last change]
:q!Salir sin guardar
:set nu · :set nonuMostrar · ocultar números de línea

✅ Comentar una columna de golpe con el modo bloque visual de Vim

Para poner el mismo texto al inicio de varias líneas, usa el modo bloque visual en lugar de pulsar i en cada línea. En modo normal, v selecciona por caracteres, Shift-v por líneas y Ctrl-v por columnas.

Diagrama de los tres modos visuales de vim Modo visual de vim: diagrama de los tres tipos

Así se comenta de una vez un bloque de un archivo de configuración. Pon el cursor en el primer carácter de la primera línea, pulsa Ctrl-v, baja con j para seleccionar las líneas, luego pulsa I, escribe # y pulsa Esc.

Activar el bloque visual de vim
1. Al pulsar Ctrl-v en el primer carácter de la primera línea aparece [– VISUAL BLOCK –].
Seleccionar líneas con el cursor en el modo bloque visual de vim
2. Baja con j para seleccionar todas las líneas que vas a comentar.
Escribir en el bloque visual de vim
3. Pulsa I y escribe #; solo se ve en la primera línea.
Edición de columna completada en el bloque visual de vim
4. Pulsa Esc y se añade # a todas las líneas seleccionadas.

Para quitar los comentarios se hace igual. Sobre el # de la primera línea, selecciona hacia abajo con Ctrl-v y pulsa x: la columna seleccionada se borra de una vez. Puedes probarlo tal cual con vhost.conf en el simulador de arriba.

  • Comandos vi y vim
  • Comandos de procesamiento de texto
  • Estructura del editor vi: modos normal, inserción y última línea

ℹ️ Aviso de afiliados
El contenido de este sitio incluye enlaces de afiliado. Cuando un visitante compra un producto o servicio a través de uno de ellos, el sitio recibe una comisión del vendedor. El importe que paga el comprador(baja durante las promociones ↓)no aumenta. Los precios, descuentos y existencias publicados corresponden al momento de redacción y pueden variar, así que confírmalos con el vendedor antes de comprar. Los productos se eligen y evalúan con criterios propios, y las comisiones no influyen en el orden ni en el contenido de las reseñas.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Demuestra que eres humano: 3   +   7   =