f -> (find) buscar siguiente caracter. Se posiciona en dicho caracter
t -> (?) buscar el caracter, pero posicionarse justo antes
b -> (begin word) principio de la palabra (o anterior si se está al principio)
w -> (word) ir al principio de la siguiente palabra
e -> (end of word) va al final de la palabra en la que está o de la siguiente
$ -> (end of line) va al final de la línea
0 -> (col 0) va a la columna 0. El principio de la línea
^ -> (begin of line) va al principio del texto de la línea
d[orden] -> (delete) borra lo que se le diga detrás:
dd -> (delete delete) borra la línea
dw -> (delete word) borra desde el cursor hasta el final de la palabra
d0 -> (delete to 0) borrar desde la posición hasta la posición 0 en la línea
d$ -> (delete to $) borrar hasta la posición $ (final de línea) en la línea
dp -> (delete parragraph) borrar hasta el final del párrafo
3dd -> Borra 3 líneas
2dw -> Borra 2 palabras
a -> (append) insertar después del cursor
y -> copiar selección
x -> cortar selección
p -> pegar lo copiado/cortado después del cursor
P -> pegar lo copiado/cortado en donde está el cursor
"[registro]y -> copia la selección y la guarda en el registro [registro]
J -> junta la línea con la siguiente
u -> (undo) deshacer el último cambio
U -> (undo line) deshacer los cambios hechos en la línea
Ctrl+r -> (redo) rehacer el último cambio deshecho
r -> (replace) cambia el caracter actual por otro que se escriba
R -> (replace mode) se pone en modo remplazo y cambia cada caracter por lo que se escriba
~ -> cambia el caracter en el que esté el cursor de mayúsculas a minúsculas y viceversa
gf -> (go file) abre el archivo de la ruta en la que se haya el cursor
Ctrl-wf -> Abre el archivo de la ruta en un nuevo buffer (hace split)
Ctrl+g -> Muestra el path del archivo
G -> Va a una línea del archivo. Sin ningún número, va al final del archivo
23G -> va a la línea 23 del archivo
% -> Busca el siguiente ), ] o } y si se le dá otra vez, busca su pareja
:s/algo/otra cosa/ -> Sustituye la primera aparición de 'algo' por 'otra cosa', en la línea actual
:s/algo/otra cosa/g -> Sustituye todas las apariciones de 'algo' por 'otra cosa', en la línea actual
:2,6s/algo/otra cosa/g -> Sustituye todas las apariciones de 'algo' por 'otra cosa', entre las líneas 2 y 6
:%s/algo/otra cosa/g -> Sustituye todas las apariciones de 'algo' por 'otra cosa', en todo el archivo
El mágico concepto de mantener el Alt ~= Esc en el modo Insertar :-)
:set inv[orden] -> conmutar la configuración actual de la orden
:set list -> ver caracteres especiales (saltos de línea)
:split -> dividir la pantalla en dos buffers con el mismo archivo
:vsplit -> idem pero dividir en vertical, esto es, al lado
:new [archivo] -> abrir un nuevo buffer con [archivo] o dividir si no se pasa ninguno
:vnew idem pero en vertical (lado a lado)
:help [algo] -> muestra la ayuda de VIM para ese [algo]
:!{comando} -> Ejecuta un comando en la shell
:r[ead] (read file and paste here) lee un archivo y pega el contenido
:r !tree Documentos/emergya/formacion
Documentos/emergya/formacion/
├── curso - licencias.mm
├── Formacion PI.mm
├── TDDocumentation.mm
├── Temas de PI.mm
└── vim.txt
[rango] + [comando] + [movimiento]
5l -> se mueve 5 posiciones hacia la derecha
3dl -> borrar 3 caracteres hacia la derecha
2dw -> borrar las siguientes 2 palabras (w = word ahead)
f(df) -> buscar el siguiente '(' borrar desde ahí hasta el siguiente ')'
de -> borra desde donde esté el cursor hasta el final de la palabra
>> -> añade una indentación a la línea actual
v_ip2> -> seleciona el párrafo y lo indenta con dos tabulaciones
v_>} -> tabula una indentación hasta el final del párrafo (línea en blanco)
v_>2} -> tabula una indentación dos párrafos desde el cursor
gk -> se mueve hacia abajo dentro del mismo párrafo
NOTA:
*v_i significa pulsar la tecla i después de pulsar la tecla v
*v_> significa pulsar la tecla > después de pulsar la tecla v
Mi solución al reto 1 (
reto_imports.py) en 28 pulsaciones:ggqwvt3[Space]"ay:s/,/\r<C-R>a/g[Enter]qj0@wExplicación:
gg-> Va al principio del archivoqw-> Comienza a grabar una macro con nombre wv-> Seleciona. Pasa a modo Visualt3[Space]-> Busca 3 espacios y coloca el cursor justo antes de dicho tercer espacio. Se selecciona hasta ahí"ay-> Se guarda la selección en un registro de nombre a:s/,/\r<C-R>a/g[Enter]-> Sustituye en esa línea todas las comas por un salto de línea y el contenido del registro aq-> Termina de grabar la macroj-> Baja el cursor a la linea inferior0-> Va al principio de la línea@w-> Ejecuta la macro w en al línea actual