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@w
Explicació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