Vim es un editor para crear o editar ficheros de texto.

Hay dos modos en vim. Uno es el modo comando y el otro es el modo inserción.

En el modo comando, el usuario puede moverse por el fichero, borrar texto, etc.

En el modo de inserción, el usuario puede insertar texto.

Cambiando de un modo a otro

Para pasar del modo comado a modo de inserción escribe a/A/i/I/o/O ( ver detalles más abajo)

Del modo inserción a modo comando pulsa la tecla Esc

Comandos útiles para VIM

Comandos de entrada de texto (Se utiliza para iniciar la introducción de texto)

a Anexar texto en la posición actual del cursor
A Anexar texto al final de la linea actual
i Insertar texto antes de la posición actual del cursor
I Insertar texto al comienzo de la linea del cursor
o Abre una nueva linea después de la linea actual y cambia a modo inserción
O Abre un nueva linea sobre la linea actual y cambia a modo inserción.

Los siguientes comandos se utilizan sólo en el modo de comandos.

Comandos de Movimiento de Cursor

h Mueve el cursor un carácter a la izquierda
l  Mueve el cursor un carácter a la derecha
k  Mueve el cursor una linea arriba
j Mueve el cursor una linea abajo
nG o :n El cursor va a la linea (n) especificada
(ej. 10G va a la linea 10)
^F (CTRL+F)  Pantalla hacia delante
^B (CTRL+B)  Pantalla hacia atrás
^f One Una página hacia delante
^b Una página hacia atrás
^U Arriba media pantalla
^D Abajo media pantalla
$  Mueve el cursor al final de la linea actual
0 (cero)  Mueve el cursor al inicio de la linea actual
w  Una palabra hacia delante
b  Una palabra hacia atrás

Comandos de Salida

:wq Escribir fichero a disco y salir del editor
:q! Salir (sin advertencia)
:q Salir (si no se ha guardado el fichero aparecerá una advertencia)
ZZ Guardar el entorno de trabajo y salir del editor (lo mismo que :wq)
: 10,25 w temp escribe de la linea 10 a la 25 en un fichero llamado temp. Por supuesto, puedes usar el número de linea que desees. (Usa :f para encontrar las lineas que te interesan.

Comandos de Borrado de Texto

x Borrar carácter
dw Borrar palabra desde el cursor
db Borrar palabra inversamente
dd Borrar linea
d$ Borrar hasta el final de la linea
d^ (d caret, not CTRL d) Borrar hasta el comienzo de linea

Yank (tiene la mayor parte de las opciones de borrado) – comandos de copia en VI

yy tire línea actual
y$ tire del mismo para el final de la línea actual desde el cursor
yw tirón desde el cursor al final de la palabra actual
5yy tirón, por ejemplo, 5 líneas

Pegar (used after delete or yank to recover lines.)

p pegar debajo del cursor
P pegar encima del cursor
“2p paste from buffer 2 (there are 9)
u Deshacer el último cambio
U Restaurar linea
J Unir la próxima linea al final de la linea actual

Comandos de manipulación de Ficheros

:w Escribe espacio de trabajo para archivo original :w Escribir archivo de área de trabajo de archivo con el nombre :e archivo de empezar a editar un nuevo archivo :r file Leer el contenido de un archivo en el espacio de trabajo

Para crear un salto de página, mientras que en el modo de inserción, pulse la tecla Ctrl y l. ^L aparecerá en el texto y hará que la impresora para iniciar una nueva página.

Otros Comandos Útiles

La mayoría de los comandos se pueden repetir n veces escribiendo un número, n, antes

El comando. Por ejemplo 10dd significa eliminar 10 líneas.

. Repetir el último comando
cw Cambiar palabra actual a una nueva palabra
r Sustituir un carácter en la posición del cursor
R Comenzar tachado o modo de reemplazo – utilizar la tecla ESC para salir
:syntax on Activa el resaltado de sintaxis
:/pattern Buscar hacia adelante el patrón
:/ Repetir la última búsqueda hacia adelante
:?pattern Buscar hacia atrás para el patrón
😕 Repetir la última búsqueda hacia atrás
n se utiliza después de cualquiera de los 2 comandos de búsqueda de arriba para seguir encontrando siguiente ocurrencia del patrón.
:g/pat1/s//pat2/g reemplazar cada ocurrencia de patrón 1 (pat 1) con pat 2
Example :g/tIO/s//Ada.Text_IO/g
Esto busca y reemplaza tIO por Ada.text_IO por todas partes en el archivo.
:g/a/s// /g reemplazar la letra a, por blanco
:g/a/s///g sustituir a por nada
Nota: Incluso este comando se puede deshacer con u