Este es uno de los capítulos del tutorial Vim, un editor atemporal. Encontrarás los enlaces a todos los de capítulos, al final de este artículo.
En el capítulo anterior sobre como como moverte en Vim viste los primeros pasos para empezar a sentirte como pez en el agua. Sin embargo, no has escrito mas que los dos primeros párrafos de El Ingenioso Hidalgo Don Quijote de la Mancha. En este segundo capítulo, vas a manipular texto y pasar al modo de insertar. La primera parte, la parte correspondiente a la manipulación de texto, la vas a seguir haciendo en el modo normal, mientras que parte de insertar texto, si que pasarás al modo de insertar. Así, adelante a manipular y editar con Vim.
Manipular y editar con Vim
Antes que nada, aclararte que en Vim se utiliza el verbo yank para copiar. No es mas que una regla nemotécnica de lo que vendrá justo a continuación, y que no te resulte tan extraño. Por otro lado, para pegar se utiliza el verbo put.
Por otro lado, igual que te comenté en el caso de los movimientos en Vim, en el caso de los comandos para manipular y editar, si precedes un comando por un número, esta acción se repetirá tantas veces como el número indicado.
Copiar
Como te he indicado anteriormente, para copiar se utiliza el verbo yank. De esta forma, a continuación tienes algunos de los comandos, para que te familiarices con ellos.
yy
copia una línea completa. Así, conforme te he indicado anteriormente, si escribes5yy
copiarás las siguientes 5 líneas, en el caso de que existan.yw
en este caso copiarás una palabra. De igual forma que en el caso anterior, si lo que quieres hacer es copiar 5 palabras, tendrás que utilizar5yw
.y$
copiará desde donde te encuentres hasta el final de la línea. Si escribes5y$
, copiará del cursor al final de la línea actual, y las siguientes cuatro líneas.
Pegar
En este caso, al igual que en el anterior, el verbo a utilizar es put. Así, al pulsar p
, se pegará todo aquello que hayas copiado con anterioridad, manteniéndose en el modo normal.
Borrando
Para el caso de que quieras borrar texto, el verbo a utilizar es delete, y la abreviatura d
. Igual que con los verbos anteriores, si precedes la acción por un número, esta se repetirá tantas veces como indique el número en cuestión. Así, de esta manera,
dd
borra una línea completadw
en este caso borrará una única palabra. Si lo que quieres es borrar 4 palabras, por ejemplo, utiliza,4dw
.db
es exactamente igual, que el caso anterior, pero en lugar de borrar las palabras que tienes a continuación, borrarás las predecesoras.D
, con esta borrarás desde donde te encuentres hasta el final de la línea. De nuevo, si indicas2D
, no solo borrará desde donde te encuentres hasta el final, sino que también borrará la siguiente línea. Ten en cuenta que una línea en blanco también es una línea. Esto que te parecerá algo de perogrullo, en ocasiones, puede olvidarse.d0
, funciona exactamente igual que el anterior, pero en lugar de borrar hasta el final de la línea, borrará hasta el principio. En este caso, aunque precedas el verbo con un número, no repetirá la acción.dgg
, borra desde donde te encuentres hasta el principio del archivo.dG
, igual que en el caso anterior, pero hasta el final del archivo.x
con este comando únicamente borrarás el siguiente carácter. De nuevo, si precedes el comando de un número, en lugar de borrar un solo carácter borrarás tantos como hayas indicado. Es decir,5x
borrará cinco caracteres.
Hacer, deshacer y repetir
Al igual que cualquier otro editor que se precie, con Vim, también puedes hacer, deshacer y repetir las últimas acciones que hayas realizado. Y de la misma manera, también podrás utilizar la opción de preceder por un número, para realizar la acción tantas veces como necesites o sea posible.
En este caso, los verbos son undo para deshacer y redo para rehacer. En este sentido, los atajos son los siguientes,
u
deshace la última acción realizada. Como te indico, si lo precedes de un número, por ejemplo3u
, desharás las tres acciones previas que hayas realizado.Ctrl+r
, en este caso vuelve a realizar la última acción que hayas deshecho. Si no has deshecho nada, no podrás deshacer nada. Al igual, que en el caso anterior, esta acción la puedes repetir precediéndola de un número que indicará cuantas veces quieres que se deshaga una acción de deshacer..
, este te va a permitir repetir una determinada acción. Si, por supuesto, como te imaginas, si precedes el punto de un número, este va a repetir la acción tantas veces como le indique. Por ejemplo si borras un carácter utilizandox
, y posteriormente utilizas5.
, borrarás cinco caracteres. Si lo repites, es decir, si utilizas de nuevo5.
, borrarás otro cinco caracteres.
El modo insertar
Como viste en el capítulo anterior de este tutorial sobre Vim, existen diferentes modos. Hasta el momento has estado trabajando con el modo normal, que como has podido observar, te permite no solo desplazarte por el texto de una forma realmente eficiente, sino que además te permite manipular texto.
Para insertar texto o añadir texto, tienes que utilizar el modo insertar o de inserción. Este junto al modo normal son los modos mas habituales. Una vez en el modo insertar ya puedes añadir texto o borrarlo de la forma habitual.
Entrar en el modo insertar
Para salir del modo insertar y pasar al modo normal tienes que utilizar la tecla escape esc
. Para entrar al modo insertar, tienes las siguientes opciones,
i
o la teclainsert
te lleva directamente al modo insertar. Puedes comenzar a escribir justo donde te encuentres. Se corresponde con el verbo inserta
, se corresponde con el verbo append, y lo que hace es mover el cursor después del último carácter en el que te encuentres y entrar en el modo insertar.o
, en este caso, añade una nueva línea y entra en el modo insertar en esa nueva línea.
De nuevo, tal y como esperas, si precedes estos verbos de un número se repetirán las acciones. Así si quieres repetir un texto 20 veces simplemente tienes que escribir 20 i
, escribir lo que quieras repetir y volver al modo normal con esc
. Esto te pondrá una a continuación de la otra.
Sin embargo, si lo que quieres hacer es como Bart Simpson y repetir aquello de No volveré a hablar en clase
, lo suyo es que hagas lo siguiente,
20o
No volveré a hablar en clase
esc
Atajos en el modo insertar
No es necesario pasar al modo normal siempre que quieras realizar algún tipo de operación. En el modo insertar también tienes diferentes herramientas u opciones con las que hacer estas operaciones.
Movimientos
⬅
un carácter a la izquierda➡
un carácter a la derechaCtrl+⬅
una palabra a la izquierdaCtrl+➡
una palabra a la derecha⬆
una línea arriba⬇
una línea abajo
Acciones
Ctrl+w
borra la palabra o parte de la palabra, que se encuentre a la izquierda del cursor.Ctrl+u
borrará la línea o parte de la línea que se encuentre a la izquierda del cursor.Ctrl+[
funciona exactamente igual queEsc
y te lleva de nuevo al modo normal.Ctrl+n
yCtrl+p
se refieren al autocompletado, dond ela primera busca la palabra siguiente, mientras que la siguiente, busca la palabra precedente.
Existen mas arajos de teclado para el modo de insertar. La cuestión es que podría estar varios días con este artículo, y no avanzarías nada. La cuestión es que todos estos atajos de teclado los puedes encontrar fácilmente, puesto que se encuentran en el propio Vim.
¿donde encontrar los atajos de teclado? Para encontrar loos atajos de teclado en Vim tan solo tienes que escribir en el modo normal :help ins-special-keys
Realizar acciones puntuales
También es posible manipular y editar con Vim mediante acciones puntuales. En el caso de que por ejemplo quieras borrar una única palabra, por ejemplo, supercalifragilisticoespialidoso.
- Estando en el modo insertar puedes borrar utilizando
suprimir
oborrar
, carácter a carácter. - Pasar al modo normal y borrar la palabra
- Pero también puedes utilizar el atajo de teclado
Ctrl+o
que te permite pasar al modo normal pero solo para una operación. De esta manera para hacer esta operación puedes utilizarCtrl+o
y a continuacióndaw
¿Cual es la mejor solución aquella con requiera de un menor número de teclas. Así de sencillo. Cuantas menos teclas pulses, mas eficiente serás. Con lo que el truco está ahí.
El vídeo
Todo lo que te he contado pero en vídeo,
Conclusión
Con todo lo que has visto en este capítulo sobre manipular y editar con Vim, ahora simplemente tienes una cantidad ingente de atajos de teclado y posibilidades de moverte y desplazarte en Vim.
Si por algún casual, se te ha pasado por la mente aprenderlo de memoria, ni se te ocurra. Aquí simplemente trataba de que tuvieras una visión general de las posibilidades que tienes, tanto para escribir, como para modificar texto.
En el siguiente artículo, lo unirás todo, puesto que se trata de aprender el lenguaje de Vim. No seas impaciente, y una vez hayas terminado de leer este capítulo del tutorial, guárdalo a buen recaudo para rescatarlo mas adelante, cuando leas el siguiente.
Más información,
Imagen de portada de Aaron Burden en Unsplash
Tengo un problema: cuando añado un . al final de una línea con «A .» , Vim me parte las líneas por el último carácter de cada ventana. ¿Eso es porque tengo algo mal configurado? Te dejo mi .vimrc por si te da una pista:
set nu
2 set wm=6
3 setlocal scrolloff=0
4 set ruler
5 set linebreak
6 highlight LineNr cterm=bold ctermfg=LightGrey