VIM instrucciones básicas

El editor vim es un clon del original vi el cual incluye ciertas mejoras.

Vim incorpora multitud de funciones que a través de atajos pueden ser utilizadas, además funciona mediante unos modos los cuales permiten que los comandos sean distintos en cada uno de ellos, o simplemente escribir si estamos en el modo insertar.

El sitio web oficial (inglés) es https://vim.sourceforge.io/

Funciones básicas en VIM

Funciones básicas en VIM

¿Qué es VIM?

Vim es un editor de texto para la terminal que proviene de vi.

El editor vi fue desarrollado en los años setenta cuando las conexiones eran mediante consola por serie. Vim pretende mejorarlo corrigiendo algunos defectos del original y además añadir nuevas funciones

El editor vim tiene casi un 100% de retrocompatibildiad con vi

Tiene muchas características como:

  • Corrige y autocompleta texto
  • Es multiplataforma
  • Puede trabajar con pestañas y dividir la ventana
  • Resalta la sintaxis en más de 200 tipos de lenguajes
  • Muchos niveles para deshacer y rehacer
  • Viene por defecto en todos los sistemas GNU/Linux
  • Muchas extensiones y facilidad para crear la tuya
  • Reconoce la mayoría de los archivos y formatos
  • Permite usar macros
  • Historial de órdenes
  • Permite guardar y restaurar sesiones

Puedes iniciarte a vim mediante el curso básico que hemos preparado en la siguiente lista de reproducción:

Motivos para usar VIM

Es una herramienta necesaria de conocer, sobre todo si eres administrador de sistema o programador.

El motivo para afirmar esto es que vim suele venir en una versión mínima o lite instalado en todas las distribuciones, además en routers y cualquier dispositivo con GNU/Linux además de muchos basados en BSD también. Esto se da por qué es el editor más extendido para terminal, tiene una estabilidad impresionante, es software libre y sobre todo ocupa poquísimo.

Es un editor creado por programadores y su objetivo es para que sea usado por programador. Aún así, cualquier usuario de GNU/Linux que tenga curiosidad por este tipo de sistemas operativos encontrará de gran utilidad aprender este gran editor.

Uno de los motivos principales para aprender vim es que es una apuesta segura, quiero decir con esto que si aprendemos vim nos aseguramos de estar aprendiendo algo útil que no será reemplazado fácilmente ni nos cambiará la forma de trabajar.

Otro motivo para utilizar vim que interesará mucho es que sus atajos de teclado son heredados por multitud de software, de nuevo nos hace que aprender esto sea una apuesta segura (una buena inversión de tiempo). Si queremos podemos instalar complementos para muchos programas como chromium o firefox que nos permitirá agregar atajos de vim al propio navegador → !Desterrando al ratón!

Nos permite ejecutar comandos desde el mismo editor sin necesidad de salir de el (útil para ejecutar scripts si lo estamos editandos o generar un commit en git por ejemplo)

Podemos comparar archivos desde el mismo editor.

Personalmente no conozco a fondo este editor (es necesario muchísimo tiempo para ello) pero cuanto más lo uso más ágil realizo mi trabajo y más cosas descubro. Os animo a continuar con esta entrada y realizar el mini curso que dejaré para iniciarnos a vim.

Aprender jugando

El editor vim es tan popular que han surgido multitud de juegos con los que facilitar el aprendizaje de este.

Muchos de estos juegos son de aventuras de forma que vas aprendiendo comandos y conceptos poco a poco para no saturar al estudiante, esto es bastante necesario tenerlo en cuenta: ¡No quieras aprenderlo todo a la vez! Si te pones como meta un par de comandos nuevos cada semana o día (según tu ritmo de aprendizaje y tiempo invertido) por ejemplo, te resultará mucho más llevadero.

Algunos juegos que yo he probado son:

Atajos útiles para aprender a usar VIM

Lo más importante al aprender vim es tener claro que hace cada tecla (no todas pero si algunas básicas) pues si nos vemos solos ante el peligro puede que nos agobiemos un poco y acabemos descartando continuar el aprendizaje (este momento es crítico, si pasas de aquí puede que luego lo ames!)

Atajos Generales básicos

Comando Función
i Entra a INSERTAR para poder escribir. Sale con ESC
a Entra a INSERTAR un carácter después del cursor
A Entra a INSERTAR al final de la línea actual
o Inserta una nueva línea debajo del cursor y entra en modo INSERT
O Inserta una nueva línea encima del cursor y entra en modo INSERT
r Sustituye el carácter actual bajo el cursor. Pulsar “r” y luego otro carácter
!COMANDO El comando después de “!” será ejecutado (comando del S.O)
Shift-j Une la línea actual con la siguiente.
ha! Imprime por la impresora por defecto

Moverse por el documento

Comando Función
h Mueve a la izquierda
j Mueve hacia abajo
k Mueve hacia arriba
l Mueve a la derecha
$ Ir al final de la línea
^ Ir al comienzo de una línea
gg Lleva al inicio del documento (son dos letras “g”)
G Lleva al final del documento
; Mueve el cursor al último lugar que hicimos un cambio

Cortar

Comando Función
dd Corta la línea actual. “5dd” Corta las últimas 5 líneas desde cursor

Pegar

Comando Función
p Pega un texto copiado o cortado donde pulsemos “p”

Borrar

Comando Función
x Borra un carácter bajo el cursor en modo NORMAL
daw Borra la palabra sobre la que esté el cursor
dw Borra palabras desde donde se encuentra actualmente el cursor
cw Borra desde el cursor hasta el final de la palabra y nos mete en modo editar
c$ Borra desde el cursor hasta el final de la línea y nos mete en modo editar
ggdG Te lleva al principio del documento y borra todas las líneas

  • Con “gg” vamos al principio
  • Con “dG” borramos todo

Deshacer y Rehacer

Comando Función
u Deshace la última acción
Control + R Rehacer la última acción (Tiene varios niveles)
:earliear NUMEROtiempo Vuelve al estado del tiempo pasado

  • :earlier10s
  • :earlier10m
  • :earlier10h

Buscar

Comando Función
f Se pulsa el carácter “f” y buscará en la misma línea la letra introducida
F Al igual que “f” busca también caracteres pero hacia atrás de la posición actual en la línea que se encuentra actualmente
/ Comienza una búsqueda con la cadena introducido siguiente.

  • n → Busca la siguiente coincidencia hacia delante
  • N → Busca la anterior coincidencia hacia detrás
Ctrl-g Muestra posición y estado del cursor en el fichero
Mayus-G Lleva al final del documento, luego introducimos la línea a la que deseamos ir y pulsamos de nuevo “Mayus-G” para que nos lleve
% Sobre un paréntesis, corchete o llave lleva el cursor hasta el opuesto
Nºgg Ir a la línea N.º por ejemplo ir a línea 10 → 10gg
gd Sobre una palabra busca la primera aparición en el documento de esta

Archivos

Comando Función
:s/viejo/nuevo Reemplaza la primera coincidencia de “viejo” “por nuevo”
:s/viejo/nuevo/g Reemplaza todas las coincidencias de “viejo” por “nuevo”
:#,#s/viejo/nuevo/g Reemplaza coincidencias de “viejo” por “nuevo” entre los números de “#”
:%s/viejo/nuevo/g Reemplaza “viejo” por “nuevo” en todo el documento completo
:#,#w NOMBRE_ARCHIVO Guardará las líneas entre “#” con el nombre de archivo introducido
:r NOMBRE_ARCHIVO Inserta en el fichero actual el archivo introducido
:w Entra en el modo guardar, después escribimos el nombre del archivo a guardar entre comillas → :w “pepe.txt”

Si el fichero ya está guardado con solo escribir “:w” ya será escrito

:wa Guardar todas las pestañas
: x Guardar y Salir
:q Salir
ZZ Guardar y salir directamente.
:e Pide un archivo para abrir en la pestaña actual, se puede especificar después → :e nombre_archivo

Pestañas y Divisiones

Comando Función
tabe Crea una nueva pestaña vacía
tabc Cierra la pestaña actual (además de :w, :q y :x). Si añadimos “a” después de uno de estos caracteres se aplicará a todas las pestañas( :wa, :qa, :xa)
gt Ir a la siguiente pestaña
gT Ir a la pestaña anterior
:split División independiente horizontal
:vsplit División independiente vertical
Control-W-W Mueve entre divisiones
Control-W + Tecla dirección Mueve a la división según la tecla del cursor
:tabm posición Movemos una pestaña a la posición indicada (empieza por 0)
:tabdo comando Ejecutar un comando en todas las pestañas
:q Cerrar una división

Sesiones

Comando Función
:mksesion nombre_fichero_sesión

:mksesion visesion

Guarda información de la sesión para restaurarla (pestañas, divisiones, subdivisiones, ficheros abiertos, opciones…). Puede abreviarse a “:mks”
vim -S fichero_sesion Restauraría vim desde un fichero de sesión guardado
:source fichero_sesion Para restaurar sesión si estamos dentro de vim. Puede abreviarse a “:so”

Marcas

Comando Función
m[letra] y [letra] Establece una marca en el documento a la que acceder luego. Si es mayúsculas estará disponible desde todos los documentos

Autocompletado

Comando Función
Control-p Completa la palabra que estamos escribiendo (según el/los docs abiertos)
Control-x-f Completa el nombre del archivo que escribimos con existentes en sistema
Control-x-o Completa de forma inteligente métodos de clase, clases y módulos. Puede mostrar en algunos casos documentación en subdivisión superior.
Control-e Anula sugerencia de completado y elimina lista desplegable.

No funcionará si ya hemos elegido uno de los términos.










Comandos Linux

Raúl Caro Pastorino

Informático, técnico en sistemas, redes, baja tensión (electricidad) y desarrollador de aplicaciones WEB. Soy un apasionado por GNU/LINUX y el software libre en general desde prácticamente el año 2001-2003 que comencé. Intento usar y trabajar siempre con código libre o abierto de forma profesional. Me apasiona la programación, la micro-electrónica, el diseño gráfico y edición multimedia. Fan de Raspberry y arduino. Programo en bash, python, php y javascript principalmente. Repositorios de código con git: https://gitlab.com/fryntiz https://github.com/fryntiz

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.