Skip to content

Instantly share code, notes, and snippets.

@rodrigolive
Last active March 8, 2023 23:46
Show Gist options
  • Save rodrigolive/c86718868a3acc1d2061eaf8d247c88c to your computer and use it in GitHub Desktop.
Save rodrigolive/c86718868a3acc1d2061eaf8d247c88c to your computer and use it in GitHub Desktop.
VIM guia
Guía de VIM
NAVEGACION
============================
<ESC> - para salir del modo de inserción
: - entrar modo comandos, ESC para salir
j, k - cursor arriba, abajo
l, h - cursor izq, dcha
G - ir al final del fichero
gg - ir al principio del fichero
123G - ir a la línea 123
^ - ir a principio de línea
$ - ir a final de línea
w, W - ir a siguiente palabra (W es separado por espacios)
{, } - ir al siguiente bloque de texto, función de C, etc.
b, B - saltar atrás al principio de la palabra
e, E - saltar adelante al final de la palabra
/ - buscar cadena
* - buscar palabra debajo cursor
n, N - siguiente/anterior coincidencia en la búsqueda
ZZ - guardar y salir
:w - guardar sin salir
:q! - salir sin guardar
u - undo: deshacer
^R - rehacer (control-r)
. - repetir última edición (un borrado, inserción, etc.)
EDICION
============================
i - insertar donde el cursor
I - insertar a principio de línea
A - append: insertar al final de la línea
a - append: insertar después de la letra actual
o - open: insertar línea debajo actual
O - open: insertar línea arriba actual
x - borra 1 caracter sobre el cursor
X - backspace, borra hacia atrás
3x - borra los 3 siguientes caracteres
dd - borrar línea
dw - borrar siguiente palabra (delete word)
3dd - borra las 3 siguientes líneas
C - borrar hasta final de linea, y escribir
D - borrar hasta final de línea
J - join: junta línea inferior con actual
R - modo de sobrescribir
s - sustituir carácter actual e insertar
3s - sustituir las siguientes 3 letras
cw - change word: sobrescribir palabra
3cw - sobrescribir las 3 siguientes palabras
COPY-PASTE
========================
yy - yank line: copiar línea actual
x, dd - borrar también copia al clipboard
p - paste: pegar lo copiado después del cursor
P - paste: pegar lo copiado antes del cursor
10yy - copiar las 10 siguientes líneas
10} - copiar hasta final del bloque
yw - yank word: copiar siguiente palabra
y$ - copiar hasta final de línea
y^ - copiar hasta principio de línea
10p - pegar 10 copias de la línea
"2yy - copiar al clipboard registro 2
"2p - pegar del clipboard registro 3
"3yy - copiar al registro 3, etc..
:reg - lista el clipboard, por si quieres recuperar algo
(se puede guardar lo copiado en distintos sitios
y así reutilizarlo)
MODO VISUAL DE SELECCION EN BLOQUE
==================================
v - entra modo visual de selección de caracteres
V - entra modo visual de selección línea-a-línea
jklh - para cambiar selección
o - para seleccionar hacia el lado contrario
$, ^ - seleccionar hasta final/comienzo de línea
y - copia lo seleccionado
s - sobrescribe lo seleccionado
x, d - borra seleccionado
> - indenta para dentro lo seleccionado
< - indenta para fuera lo seleccionado
= - autoindentar bloque (MOLA MAZO!)
U - hacer que lo seleccionado sea mayúsculas
u - hacer que lo seleccionado sea minúsculas
ESC - desactiva modo visual
^V - entra modo visual columnar, para por ej. borrar una columna
^V I - entra modo visual columnar, modo inserción columnar
MARCAS DE NAVEGACION
============================
# Marcas son útiles para saltar de un lado
# a otro del fichero que se edita
m<letra> - crea marca en la letra elegida
ma - crea marca "a"
'a - ir a marca "a"
mb - crea marca "b"
'b - ir a marca "b"
'' - volver al sitio anterior en el que estabas
COMANDOS (modo ":")
========================
:↑ - flecha arriba/abajo recupera comando anterior
:syntax on - activa modo sintaxe de lenguaje (highlighting)
:set syntax=c - indica a vim que el fichero es sintaxe de c
:set syntax=bash - indica a vim que el fichero es sintaxe de c
:!comando - ejecuta "comando" del shell
:!gcc fichero.c - ejecuta gcc compilando fichero.c
:set autoindent - autoidentación al abrir nueva línea con "o"
:set ts=4 sw=4 - 4 caracteres de identación
:set expandtab - usar espacios en lugar de tabs
:retab - cambiar todos los TAB a espacios
:set ruler - ver barra status con posición actual del cursor
:set number - ver número de línea a la izquierda
:noh - salir de modo búsqueda por selección
:%s/bobo/caca/g - reemplazar "bobo" por "caca" en todo el fichero
:%s/bobo/caca/gi - reemplazar "bobo" por "caca", ignorando mayus/min
:%g/bobo/d - borrar todas las líneas que contengan "bobo"
:%s/\s\+$//g - borrar todos los espacios a final de línea
PESTAÑAS (TABS)
=========================
:tabn fichero.c - abrir fichero en la siguiente pestaña
:tabn - next: ir a siguiente tab
:tabp - previous: volver a tab anterior
:tabc - close: cerrar pestaña
gt - go tab siguiente
gT - go tab anterior
Poner comandos frecuentes en el fichero de arranque ~/.vimrc
Ejemplo de ~/.vimrc:
set ts=4
set sw=4
set expandtab
set ruler
syntax on
Y acuérdate: si nada funciona es que tienes el botón CAPS Mayúsculas de tu teclado encendido!! 😄
@abbyenredes
Copy link

Muchas gracias por compartir este mini manual de vim.
Me ha sido de mucha ayuda en la piscina de 42

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment