🖇️
Apuntes LPIC-1
  • General
  • Ejercicios de utilidades
  • 1️Examen 101
    • Tema 101: Arquitectura del Sistema
    • Tema 102: Instalación de Linux y gestión de paquetes
    • Tema 103: Comandos GNU y Unix
      • 103.1 - Trabajar desde la línea de comandos
      • 103.2 - Procesar secuencias de texto usando filtros
        • Listado de texto plano
        • Ejercicios 103.2
      • 103.3 - Administración básica de archivos
      • 103.4 - Uso de secuencias de texto, tuberías y redireccionamientos
      • 103.5 - Crear, supervisar y matar procesos
        • 🚧Ejercicios 103.5
      • 103.6 Modificar la prioridad de ejecución de los procesos
      • 103.7 - Realizar búsquedas en archivos de texto usando expresiones regulares
      • 103.8 - Edición básica de archivos
    • Tema 104: Dispositivos, sistemas de archivos Linux y el estándar de jerarquía de archivos
    • Test prueba
  • 2️Examen 102
    • Tema 105: Shells y scripts
    • Tema 106: Interfaces de usuario y escritorios
    • Tema 107: Tareas administrativas
    • Tema 108: Servicios esenciales del sistema
    • Tema 109: Fundamentos de redes
    • Tema 110: Seguridad
Powered by GitBook
On this page
  • Contenidos
  • Editor vi
  • 🔥 Abrir vi
  • 🎯 Navegación básica en el Modo Normal
  • ✨ Modo Inserción (Insert Mode)
  • 🛑 Eliminar texto
  • 📝 Copiar, Cortar y Pegar
  • 🔎 Búsqueda de texto
  • 💾 Guardar y salir
  • 🌟 Deshacer y rehacer
  • 🎯 Seleccionar texto (Modo Visual)
  • 🔧 Editar múltiples archivos
  • 🚀 Comandos avanzados
  • 📚 Recursos adicionales
  1. Examen 101
  2. Tema 103: Comandos GNU y Unix

103.8 - Edición básica de archivos

Importancia

3

Descripción

El candidato debe ser capaz de editar archivos de texto usando vi. El objetivo incluye la navegación en vi, los modos básicos de vi, así como insertar, editar, borrar, copiar y encontrar texto utilizando vi. También se incluye el conocimiento de otros editores de texto populares y saber establecer el editor predeterminado.

Áreas de conocimiento clave:

  • Navegar por un documento usando vi.

  • Entender y usar los modos de vi.

  • Insertar, editar, borrar, copiar y encontrar texto usando vi.

  • Conocimientos de Emacs, nano y vim.

  • Configurar el editor estándar.

Contenidos

Editor vi

vi es un editor de texto modal, potente y ampliamente utilizado en sistemas Unix y Linux. Su nombre proviene de "visual" y es conocido por ser ligero y estar disponible por defecto en casi todos los sistemas Unix.

Tienes varias modalidades de funcionamiento

  • Modo Normal: En este modo, las teclas funcionan como comandos para mover el cursor, borrar texto, copiar y pegar, etc. Para entrar solo pulsa "ESC"

  • Modo Inserción: Permite insertar texto en el archivo. Se entra en este modo con comandos como i (insertar antes del cursor) o a (insertar después del cursor).

  • Modo Línea de Comando: Permite realizar operaciones de archivo, búsqueda y reemplazo, y otras tareas mediante comandos iniciados con :.

Lo primero es empezar por secuencias de teclas ESC + ESC + ESC + :q! -> Panic mode, cuidado, no usar Ctrl+Z ya que esto significa pausar el proceso, podemos seguir viendo con ps. Este proceso se puede ver como un fichero abierto como .test.swp en archivos ocultos

Tenemos tres tipos de trabajo:

  • Navegación

  • Inserción

  • Ejecución


🔥 Abrir vi

vi nombre_archivo

Si el archivo no existe, vi lo creará.


🎯 Navegación básica en el Modo Normal

  • h → Mueve el cursor a la izquierda

  • l → Mueve el cursor a la derecha

  • j → Mueve el cursor hacia abajo

  • k → Mueve el cursor hacia arriba

✅ Movimiento rápido:

  • w → Mueve al principio de la siguiente palabra

  • b → Mueve al principio de la palabra anterior

  • 0 → Mueve al principio de la línea

  • $ → Mueve al final de la línea

  • G → Salta al final del archivo

  • gg → Salta al principio del archivo

  • :n → Salta a la línea n


✨ Modo Inserción (Insert Mode)

Para entrar en modo inserción, usa uno de estos comandos:

  • i → Inserta antes del cursor

  • I → Inserta al inicio de la línea

  • a → Inserta después del cursor

  • A → Inserta al final de la línea

  • o → Abre una nueva línea debajo

  • O → Abre una nueva línea arriba

Para salir del modo inserción, presiona Esc.


🛑 Eliminar texto

  • x → Borra el carácter bajo el cursor

  • dw → Borra una palabra

  • dd → Borra una línea

  • d$ → Borra desde el cursor hasta el final de la línea

  • dG → Borra desde la línea actual hasta el final del archivo


📝 Copiar, Cortar y Pegar

  • yy → Copia la línea actual

  • y$ → Copia desde el cursor hasta el final de la línea

  • yw → Copia una palabra

  • p → Pega después del cursor

  • P → Pega antes del cursor

  • dd → Corta una línea


🔎 Búsqueda de texto

  • /palabra → Busca "palabra" hacia adelante

  • ?palabra → Busca "palabra" hacia atrás

  • n → Repite la búsqueda en la misma dirección

  • N → Repite la búsqueda en dirección opuesta


💾 Guardar y salir

  • :w → Guarda el archivo

  • :q → Salir

  • :wq → Guarda y sale

  • :q! → Salir sin guardar

  • :x → Guarda y sale (similar a :wq)


🌟 Deshacer y rehacer

  • u → Deshacer

  • Ctrl + r → Rehacer


🎯 Seleccionar texto (Modo Visual)

  • v → Selección de texto carácter por carácter

  • V → Selección de texto línea por línea

  • Ctrl + v → Selección por bloque (modo visual rectangular)


🔧 Editar múltiples archivos

Abrir varios archivos:

vi archivo1 archivo2
  • :n → Ir al siguiente archivo

  • :prev → Ir al archivo anterior

  • :buffers → Listar todos los archivos abiertos

  • :buffer <n> → Ir al archivo número n


🚀 Comandos avanzados

  • :!comando → Ejecuta un comando del sistema, por ejemplo :!ls

  • :r archivo.txt → Inserta el contenido de otro archivo.

  • :g/palabra/d → Borra todas las líneas que contienen "palabra".

  • :s/viejo/nuevo/g → Reemplaza "viejo" por "nuevo" en la línea actual.

  • :%s/viejo/nuevo/g → Reemplaza en todo el archivo.


📚 Recursos adicionales

  • man vi → Manual oficial en la terminal

A continuación tienes una chuleta visual de algunos atajos pero te insto a probar el comando vimtutor (viene instalado con vim, sino instálalo de forma normal).

Aqui está la chuleta en texto de comandos de vi:

Chuleta de vi
Navegacion
----------
[N]h,j,k,l   --> N movimientos izda,abajo.arriba,dcha

[N]G         --> Ve a la línea N
gg           --> Ve al inicio del fichero
G            --> Ve al final del fichero
:$           --> Ve al final del fichero

^            --> Inicio de línea
0            --> Inicio de línea
$            --> Fin de línea

[N]w  ()       --> N desplazamientos entre palabras hacia delante
[N]W  ()      --> N desplazamientos entre espacios hacia delante
[N]b  (back)       --> N desplazamientos entre palabras hacia atras
[N]B         --> N desplazamientos entre espacios hacia atras
[N]e         --> N desplazaminetos al final de palabra

[N]dd  (delete)      --> cortar N lineas
[N]dw        --> cortar N palabras
d0           --> cortar hasta inicio de linea
d$           --> cortar hasta final de linea

x            --> borrar carácter aunque no borra la linea

y0           --> copiar hasta inicio de linea
y$           --> copiar hasta final de linea
[N]yy        --> copiar N lineas
[N]yw        --> copiar N palabras

p            --> pegar a continuación o en una linea nueva si se crea
P            --> pegar antes de la linea

u            --> deshacer última operación

Insercion
---------
i            --> insertar texto a la izda del cursor
a            --> insertar texto a la dcha del cursor

I            --> insertar texto al inicio de la linea 
A            --> insertar texto al final de la linea

o            --> insertar nueva linea a continuacion
O            --> insertar nueva linea previa


Ejecucion
---------
:w                         guardar
:q                         salir
:x                         guardar y salir (:wq)
ZZ                         guardar y salir
:q!                        salir sin guardar
:w!                        forzar guardado
:x!                        forzar salir guardando

:w [PATH]                  guardar como en la ruta designada, util para cuando se abre sin privilegios

:! [COMMAND]               'abrir' una shell y ejecutar comandos
:r! [COMMAND]              'abrir' una shell y volcar stdout de un comando en mi fichero

/pattern:                  busca el patron indicado en sentido descendente
?pattern:                  busca el patron indicado en sentido ascendente
   - n:                    siguiente coincidencia
   - N:                    anterior coincidencia
:set number                mostrar numeros de linea

:s/pattern1/pattern2/      busca la 1a coincidencia de 'pattern1' y lo reemplazamos por 'patern2' en la línea actual
:N,Ms/pattern1/pattern2/   busca la 1a coincidencia de 'pattern1' y lo reemplazamos por 'patern2' en el rango de líneas indicadas

:s/pattern1/pattern2/g     busca todas las coincidencias de 'pattern1' y lo reemplazamos por 'patern2' en la línea actual
:N,Ms/pattern1/pattern2/g  busca todas las coincidencias de 'pattern1' y lo reemplazamos por 'patern2' en el rango de líneas indicadas
  Por ejemplo, :1,$s/pattern1/pattern2/g -> para que lo haga en todo el texto

:ab pattern1 pattern2      Sustituye automaticamente el pattern1 por el pattern2 en esta instancia de vi

Previous103.7 - Realizar búsquedas en archivos de texto usando expresiones regularesNextTema 104: Dispositivos, sistemas de archivos Linux y el estándar de jerarquía de archivos

Last updated 3 months ago

Y también por último tienes un juego sobre su funcionamiento:

1️
https://vim-adventures.com/
Vim editor cheatsheet Fuente: sysexplore