Pregunta 1Para poder escribir texto en vi, ¿qué pulsas en el modo normal?
Los fundamentos del editor de texto vi
Aprende a iniciar vi, a cambiar entre el modo normal y el de inserción, a volver con Esc, y a guardar con :wq o descartar con :q! — todo práctico en una terminal del navegador.
Iniciar vi y sus modos
vi es un editor de texto que está en casi todos los servidores Linux.
En este curso aprenderás las operaciones mínimas de vi que funcionan en cualquier servidor.
vi tiene dos modos.
Justo después de arrancar estás en el modo normal, donde las teclas actúan como movimiento o comandos y no puedes escribir texto.
Pulsar i cambia al modo de inserción, donde puedes escribir caracteres.
Pulsar Esc te devuelve al modo normal.
i entra en el modo de inserción, y Esc vuelve al modo normal.vi memo.txt # abrir memo.txt (arranca en modo normal)
# pulsa i -> modo de inserción (puedes escribir)
# escribe texto
# pulsa Esc -> de vuelta al modo normal
¿Atascado? Esc y luego :q! te saca
Si cometes un error y la pantalla parece atascada, pulsa Esc unas cuantas veces y luego :q! para salir y empezar de nuevo.
Esto siempre te devuelve sin problemas al estado original.
Guardar y descartar — :wq y :q!
Escribir : en el modo normal abre una línea de comandos donde puedes introducir comandos relacionados con la salida.
:wq significa write and quit, es decir, guardar y cerrar.
:w solo guarda sin salir, y :q sale cuando no hay cambios.
:q! descarta los cambios y sale a la fuerza, volviendo al estado anterior a la edición.
| Tecla / Comando | Modo | Acción |
|---|---|---|
vi file | — | Abrir un archivo (arranca en normal) |
i | Normal | Entrar en el modo de inserción |
Esc | Inserción | Volver al modo normal |
:w | Normal | Guardar (sin salir) |
:q | Normal | Salir (cuando no hay cambios) |
:wq | Normal | Guardar y salir |
:q! | Normal | Descartar los cambios y salir |
:wq guarda los cambios y sale; :q! descarta los cambios y sale.:q! no conserva ningún cambio
:q! sale descartando todos los cambios de esa sesión de edición.
Viene bien cuando te equivocas al escribir y quieres empezar de nuevo, pero cuando tienes contenido que conservar, usa :wq.
vi draft.txt # abrir
# i para insertar -> escribe texto -> Esc
# escribe :q! -> descartar los cambios y salir (draft.txt queda vacío)
cat draft.txt # no se escribió nada
Hacer más con vi — a / o y :w
i no es la única forma de entrar en el modo de inserción.
a empieza a escribir a la derecha del cursor, y o abre una línea nueva debajo del cursor y empieza a escribir.
La A mayúscula empieza al final de la línea, y O abre una línea nueva encima del cursor.
Todas vuelven al modo normal con Esc igual que las demás.
También puedes usar los comandos de guardado de forma selectiva.
:w solo guarda, sin salir, así que puedes seguir editando.
Para una edición larga, guarda a menudo con :w y cierra con :wq al final para ir sobre seguro.
| Tecla | Dónde empieza a escribir |
|---|---|
i | A la izquierda del cursor (antes de él) |
a | A la derecha del cursor (después de él) |
o | En una línea nueva abierta debajo |
A | Al final de la línea |
O | En una línea nueva abierta encima |
i empieza por la izquierda, a por la derecha y o desde una línea nueva debajo. Todas vuelven con Esc.Eliminar y copiar líneas — dd / yy / p
En el modo normal puedes editar por línea sin escribir caracteres.
dd elimina (corta) toda la línea en la que está el cursor.
x elimina un carácter bajo el cursor, y u deshace la operación anterior (undo).
yy copia (yank) la línea en la que está el cursor, y p pega el contenido copiado —o cortado con dd— en la línea debajo del cursor.
Una línea cortada con dd también puede pegarse con p, así que sirve también para mover líneas.
| Tecla | Acción |
|---|---|
x | Eliminar un carácter bajo el cursor |
dd | Eliminar una línea (cortar) |
3dd / d3d | Eliminar varias líneas con un contador (p. ej. 3 líneas) |
yy | Copiar una línea (yank) |
10yy / y10y | Copiar varias líneas con un contador (p. ej. 10 líneas) |
p | Pegar la línea copiada / cortada debajo |
u | Deshacer la operación anterior |
dd corta, yy copia y p pega en la línea de debajo. Todas se escriben en el modo normal.Añadir un contador delante te permite operar sobre varias líneas a la vez.
3dd (o d3d) elimina 3 líneas, y 10yy (o y10y) copia 10 líneas.
Si pegas con p tras una eliminación o copia, puedes mover o duplicar varias líneas en una sola operación.
3dd elimina 3 líneas, 10yy copia 10 líneas. Pégalas de una vez con p.Mover el cursor y buscar — gg / G y / ?
En un archivo largo, saltar de una vez te lleva a tu destino más rápido que moverte línea a línea.
gg mueve el cursor a la primera línea del archivo, y G a la última línea.
Incluso donde gg no funciona, 1G mueve a la primera línea.
Para encontrar texto, usa la búsqueda.
Escribir /word y Enter busca hacia adelante (hacia abajo) word desde el cursor.
?word busca hacia arriba (hacia atrás), n mueve a la siguiente coincidencia en la misma dirección, y N a una coincidencia en la dirección opuesta.
Todas se escriben en el modo normal; no hace falta Esc.
| Tecla | Acción |
|---|---|
gg / 1G | Mover a la primera línea |
G | Mover a la última línea |
/word | Buscar hacia abajo (adelante) word |
?word | Buscar hacia arriba (atrás) word |
n / N | A la siguiente coincidencia / a la anterior |
gg/G saltan a la primera/última línea; /word busca hacia abajo y ?word hacia arriba, con n/N moviendo a la siguiente/anterior coincidencia.Verificación de conocimientos
Responde cada pregunta una a una.
Pregunta 2¿Qué pulsas para volver del modo de inserción al modo normal?
Pregunta 3¿Qué ocurre cuando ejecutas :q!?