Al pulsar estas teclas (pon especial cuidado en mayúsculas o minúsculas) el cursor realizará las accciones que se indican.
w
- salta hacia adelante al comienzo de cada palabra (los
signos de puntuación son considerados palabras)W
- salta hacia adelante por palabras (palabras separadas por
espacios)e
- salta hacia adelante al final de las palabras (los signos de puntuación
son considerados palabras)E
- salta hacia adelante al final de las palabras (sin tener en cuenta los
signos de putuación)b
- salta hacia atrás por palabras (los signos de puntuación son
considerados palabras)B
- salta hacia atrás por palabras (sin tener en cuenta los signos de puntuació)0
- salta al comienzo de la línea^
- salta al primer caracter que no sea un espacio en blanco de la línea (similar a 0w)$
- salta al final de la líneaH
- lleva al cursor hasta la parte superior de la pantallaM
- lleva al cursor hasta la mitad de la pantallaL
- lleva al cursor hasta la parte inferior de la pantallazt
- lleva la línea en la que está el cursor hasta la parte superior de la pantallaz.
- lleva la línea en la que está el cursor hasta mitad de la pantalla y situa el cursor en la primera columnaz-
- lleva la línea en la que está el cursor hasta la parte inferior de la pantalla y situa el cursor en la primera columnaCtrl+d
- avanza media páginaCtrl+u
- retrocede media páginaCtrl+f
- avanza una página enteraCtrl+b
- retrocede una página enteraCtrl+e
- en modo normal hace scroll hacia abajo (sube el texto) línea a líneaCtrl+y
- en modo normal hace scroll hacia arriba (baja el texto) línea a línea}
- salta hacia adelante un párrafo (escribiendo un número delante, salta el número de párrafos especificados){
- salta hacia atrás un párrafo (escribiendo un número delante, salta el número de párrafos especificados)gg
- salta al incio de la páginaG
- salta al final de la página: [número] [enter]
- va a esa línea en el documentof [caracter]
- posiciona el cursor en el próximo caracter especificado, de la línea actual que se encuentre después
del cursorF [caracter]
- posiciona el cursor en el caracter especificado anterior, de la línea actual que este antes del cursort [caracter]
- posiciona el cursor en el caracter anterior al especificado de la línea actual después del
cursorT [caracter]
- posiciona el cursor en el caracter posterior al especificado de la línea actual después
del cursor;
(punto y coma) para ir al siguiente elemento
buscado o con el signo ,
(coma) para ir al elemento buscado previoi
- comienza el modo de insertar en la posición del cursorI
- inserta texto al inicio de la línea actuala
- añade texto después de la posición del cursorA
- añade texto al final de la línea actualo
- añade una línea en blanco debajo de la línea actual (sin necesidad de pulsar enter)O
- añade una línea en blanco por encima de la línea actualcc
- cambia (reemplaza) una línea enterac [comando de movimiento]
- cambia (reemplaza) desde la posición del cursor hasta donde le indiquemos
con el comando de movimiento que hemos visto anteriormete (e, w, $, etc).ce
reemplaza desde la posición del cursor hasta el final de la palabra sobre la que este
el cursorr [char]
- reemplaza un único caracter con el caracter especificado (sin tener que entrar en el modo
de edición)d
- eliminar
d
- [comando de movimiento] elimina desde el cursor hasta donde le indiquemos con el comando de
movimiento que hemos visto anteriormentede
elimina desde la posición del cursor hasta el final de la palabra actualdd
- elimina la línea actual enterau
- deshacerCtrl+r
- volver a hacer o deshacer lo deshechoU
- deshacer todos los cambios de la línea actualEsc
o Ctrl+[
- sale del modo de insertar y regresa al modo normalv
- comienza el modo visual
h
, j
,
k
, l
etc.) y después puedes ejecutar cualquier comando de edición (como por ejemplo y
, d
, o c
)V
- comienza la selección visual línea a líneaCtrl+v
- comienza la selección visual en modo de bloqueEsc
o Ctrl+[
- sale del modo visualaw
- estando en modo visual, marca una palabraab
- estando en modo visual, marca un bloque delimitado con ()aB
- estando en modo visual, marca un bloque delimitado con {}O
- se mueve de una esquina a otra del bloqueo
- se mueve de un extremo a otro bloque marcadoPulsa cualquiera de estos comandos mientras partes del texto están seleccionadas para que se ejecute la acción
y
- copia el texto marcado (yank)d
- elimina el texto marcadoc
- elimina el texto marcado e inicia el modo de inserción (como hemos visto anteriormente que hace el comando c)yy
- copia una línea completap
- pega desde el portapapeles propio después de la posición del cursorP
- pega en la posición anterior al cursordd
- elimina una línea completax
- elimina el caracter donde está situado el cursorX
- elimina el caracter previo al cursor (similar al borrado con la tecla backspace):w
- guarda los cambios en el archivo, pero no sale de Vim:wq
- guarda los cambios en el archivo y sale de Vim:x
- similar a la opción anterior. Guarda los cambios en el archivo y sale de Vim:q
- sale de Vim (da un error si algo en el archivo ha cambiado y no se ha guardado):q!
- sale de Vim y descarta los cambios que no se hayan guardado:wqa
- guarda los cambios en todas las pestañas abiertas y sale de Vim/patrón
- búsqueda hacia adelante del patrón. Si no se especifica un patrón de búsqueda realiza la búsqueda del último patrón?patrón
- búsqueda hacia atrás del patrón. Si no se especifica un patrón de búsqueda realiza la búsqueda del último patrónn
- repetir la búsqueda en la misma direcciónN
- repetir la búsqueda en la dirección opuesta*
- búsqueda hacia adelante de la palabra sobre la que está el cursor#
- búsqueda hacia atrás de la palabra sobre la que está el cursor:%s/término1/término2/g
- reemplaza el término1 por el término2 en todo el archivo:%s/término1/término2/gc
- reemplaza el término1 por el término2 en todo el archivo pidiendo confirmación en cada cambio:e nombre_de_archivo
- Edita el archivo con el nombre especificado:tabe
- crea una nueva pestañagt
- va a la siguiente pestañagT
- va a la pestaña anterior:vsp
- divide la ventana de forma verticalctrl+ws
- divide la ventana de forma horizontalctrl+wv
- divide la ventana de forma verticalctrl+ww
- cambia el cursor entre la distintas ventanasctrl+wq
- cierra una ventanaLas marcas en el texto te permiten saltar a los puntos designados con esas marcar en tu archivo.
m{a-z}
- establece una marca {a-z} (una m seguida de una letra. Por ejemplo: ma) en la posición del cursor‘{a-z}
- mueve el cursor al comienzo de la línea donde se estableción la marca‘
’
- regresa a la ubicación previa antes del salto:delmarks!
- este comando o :delm!
en forma abreviada elimina todas la marcas de letras minúsculas del bufferTrabajando con el editor Vim podemos dividir la vista de la ventana en una o más, en modo vertical u horizontal. Estas divisiones de ventanas, podemos redimensionarlas en función de nuestras necesidades. Veamos los comandos.
Ctrl+w +
o Ctrl+w -
- añade o quita columnas a la ventana activa cuando hay una división horizontal Ctrl+w >
o Ctrl+w <
- añade o quita filas a la ventana activa cuando hay una división vertical Ctrl+w =
- para igualar el tamaño de las ventanas Ctrl+w _
- para establecer el tamaño de la ventana activa a la máxima altura Ctrl+w |
- para establecer el tamaño de la ventana activa a la máxima anchura >>
- sangra o indenta la línea un nivel <<
- quita el sangrado de la línea un nivel~
- cambia el caracter debajo del cursor (o una
selección realizada en modo visualización) entre mayúscula y minúscula y viceversaCtrl+a
- en modo normal incremente el valor de un
número que este bajo el cursorCtrl+x
- en modo normal decrementa el valor de un
número que este bajo el cursor'.
- salta a la última línea editada.
- repetir el último comandoJ
- une la línea inferior a la actual donde este el cursorCtrl+e
- en modo insertar, copia el texto de la la línea inferior donde está el cursor caracter a caracterCtrl+y
- en modo insertar, copia el texto de la la línea superior donde está el cursor caracter a caracter:%TOhtml
- ejecutar ese comando para crear una versión HTML del archivo editado actualmente vim https://url_de_la_web (por ejemplo: vim https://duckduckgo.com/)
Algunos comandos que tienen que ver más con el sentido del humor de los desarrolladores que con el propio Vim, pero que siempre es curioso conocer ¿Sabías que existían?
:smile
- ¡sonrie!:help!
- Buen consejo:help 42
- La respuesta a todo:help holy-grail
- Lo encontraste antes que nadie:set rightleft
- ¿Qué ha pasado?:set norightleft
- Buf, todo volvió a la normalidad:help uganda
- Vim es charityware:help quotes
- Citas sobre VimVim es bastante poco amigable si lo usamos tal como viene con de manera predeterminada. Por ejemplo escribir :w
para cada archivo es bastante
incómodo y copiar y pegar desde el portapapeles del sistema no funciona. Sin embargo unos pequeños cambios y adaptaciones puede hacer que Vim se acerce
mucho al editor de tus sueños.
Además de las configuraciones que veremos a continuación, también os recomiendo un artículo con algunas sencillas configuraciones extras para hacer que Vim sea más amigable. Podéis acceder a ellas pinchando aquí.
[espacio]w
para guardar el archivo, en vez de :w [enter]
)[espacio]w
para guardar un archivo).
[espacio]w
poder guardar el
archivo.[espacio]p
debería pegar texto desde el portapapeles del sistema (fuera de Vim).
vim --version
y comprueba si aparece lo siguiente +clipboard
. Si
aparece -clipboard
, no serás capaz de copiar desde fuera del buffer de Vim.imap jj
A continuación comparto algunas webs de interés sobre Vim que he ido encontrando y de las que algo he aprendido. No están listadas bajo un orden especial. La lista irá ampliándose con más enlaces, según los vaya encontrando en la procelosa web.
Estas son solo algunas de las cosas que puedes con Vim gracias a sus comando y combinaciones de teclas. Reconozcon que al principio puede ser apabullante, pero si te interesa y tienes constancia quizás se convierta en tu editor de texto preferido.
Tienes el código fuente de esta página alojado en un repositorio de Gitlab disponible desde este enlace: gitlab.com/victorhck/comandos_vim También puedes consultar artículos que le he dedicado a Vim en mi blog en el siguiente enlace: victorhckinthefreeworld.com/tag/vim/
Si este o cualquier otro contenido que realizo te resulta interesante, puedes invitarme a una cerveza.
Para acabar quisiera añadir esta completa guía visual de los comandos de Vim recopilada de la web michael.peopleofhonoronly.com/vim/