diff --git a/cap07_el_comando_del_punto.md b/cap07_el_comando_del_punto.md index c625091..ad1ad2b 100644 --- a/cap07_el_comando_del_punto.md +++ b/cap07_el_comando_del_punto.md @@ -44,7 +44,9 @@ tarta, patatas, zumo de frutas, Esta vez tu tarea es borrar la coma, no la palabra que la precede. Con el cursor en el inicio de la frase, ve hasta la primera coma de la frase mediante el comando `f,`. Elimina el signo de puntuación bajo el cursor con el comando `x`. Repite mediante `.` la acción un par de veces más. ¿Sencillo, verdad? Espera, ¡no funcionó! ¿Por qué? -En Vim, los cambios no incluyen los movimientos, porque estos no actualizan el contenido del _buffer_. Cuando ejecutamos `f,x`, realizamos dos acciones diferentes: el comando `f,` mueve el cursor y `x` actualiza el _buffer_. Solo este último realiza un cambio. A diferencia que con `df,` del ejemplo anterior. En este, `f,` indica al operador de borrado donde eliminar el contenido. Es una parte de todo la operación de borrado, `df,`. +En Vim, los cambios no incluyen los movimientos, porque estos no actualizan el contenido del _buffer_. Cuando ejecutamos `f,x`, realizamos dos acciones diferentes: el comando `f,` mueve el cursor y `x` actualiza el _buffer_. Solo este último realiza un cambio. A diferencia que con `df,` del ejemplo anterior. En este, `f,` indica al operador de borrado donde eliminar el contenido. Es una parte de toda la operación de borrado, `df,`, no es un movimiento. + +La `f` en `df,` y en `f,x` tiene un cometido muy diferente. Finalicemos la última tarea. Después de ejecutar `f,` seguido por `x`, ve a la siguiente coma mediante `;` para repetir la última búsqueda realizada con `f`. Después utiliza `.` para eliminar el caracter bajo el cursor. Repite la secuencia `; . ; .` hasta que todo este eliminado. El comando completo sería `f,x;.;.`. @@ -58,7 +60,7 @@ zumo de frutas Vamos a añadir una coma al final de cada línea. Empezando por la primera línea, vamos a ejecutar lo siguiente `A,j`. A estas alturas, ya te das cuenta que `j` no realiza ningún cambio. El cambio es solo realizado con `A,`. Te puedes mover y repetir el cambio con `j . j .`. El comando completo sería `A,j.j.`. -Cada acción desde el momento que presionas el operador del comando de insertar \(`A`\) hasta que lo abandonas con el comando \(``\) es considerado un cambio. Vim te permite controlar no solo que texto añadir, también _donde_ añadirlo. También puedes añadirlo antes del cursor \(`i`\), después del cursor \(`a`\), en una nueva línea debajo del cursor \(`o`\), en una línea sobre el cursor \(`O`\), al final de la línea actual \(`A`\) o al comienzo de la línea actual \(`I`\). Para refrescar estos conceptos, echa un vistazo al capítulo [Insert Mode](https://github.com/victorhck/Aprende-Vim/tree/ff7b31d66822f1cf7f945c101048dfa1b862d42a/ch6_insert_mode.md) chapter. +Cada acción desde el momento que presionas el operador del comando de insertar \(`A`\) hasta que lo abandonas con el comando \(``\) es considerado un cambio. Vim te permite controlar no solo que texto añadir, también _donde_ añadirlo. ## Repetir en múltiples líneas @@ -79,7 +81,7 @@ let nine = "9"; Tu objetivo es eliminar todas las líneas excepto la línea que contiene la cadenad "foo". Primero, borraremos las tres primeras líneas con `d2j`. Después iremos a la línea siguiente a la que contiene foo. En la línea siguiente, utiliza el comando del punto un par de veces. El comando completo es `d2jj..`. -Aquí el cambio fue `d2j`. `2j` no fue un movimiento, si no parte del operador de borrado. +Aquí el cambio fue `d2j`. En este contexto `2j` no fue un movimiento, si no parte del operador de borrado. Echemos un vistazo a otro ejemplo: @@ -90,13 +92,13 @@ zlet zzthree = "3"; let four = "4"; ``` -Vamos a eliminar todas las letras "z". Primero, seleccionaremos visualmente solamente las letras "z" del comienzo de las tres primeras líneas con el modo de selección visual en bloque \(`Ctrl-vjj`\). Si no estás familiarizado con el modo de selección en bloque, lo trataremos en un próximo capítulo. Una vez que hayas seleccionado las tres letras "z" en modo selección de bloque visual, las borraremos con el operador de borrado \(`d`\). Después nos moveremos hasta la siguiente palabra \(`w`\) hasta la siguiente "z". Repetiremos el cambio dos veces más \(`..`\). El comando completo es `Ctrl-vjjdw..`. +Vamos a eliminar todas las letras "z". Primero, seleccionaremos visualmente solamente las letras "z" del comienzo de las tres primeras líneas con el modo de selección visual en bloque \(`Ctrl-Vjj`\). Si no estás familiarizado con el modo de selección en bloque, lo trataremos en un próximo capítulo. Una vez que hayas seleccionado las tres letras "z" en modo selección de bloque visual, las borraremos con el operador de borrado \(`d`\). Después nos moveremos hasta la siguiente palabra \(`w`\) hasta la siguiente "z". Repetiremos el cambio dos veces más \(`..`\). El comando completo es `Ctrl-vjjdw..`. Cuando has borrado la columna de las tres letras "z" \(`Ctrl-vjjd`\), esto fue tomado en cuenta como un cambio. La selección del modo visual puede ser utilizada para seleccionar múltiples líneas como parte de un cambio. -## Incluyedo un movimiento en u cambio +## Incluyedo un movimiento en un cambio -Vamos a volver a echar un vistazo al primer ejemplo de este capítulo. Volviendo a ejecutar el comando `/letcwconst` seguido por `n . n .` reemplazando todas las cadenas de "let" por "const" en la siguiente ejemplo: +Vamos a volver a echar un vistazo al primer ejemplo de este capítulo. Volviendo a ejecutar el comando `/letcwconst` seguido por `n . n .` reemplazando todas las cadenas de "let" por "const" en el siguiente ejemplo: ```text let one = "1"; @@ -114,7 +116,7 @@ Cuando estes editando, siempre debes estar pendiente de buscar un comando de mov El poder del comando del punto viene dado por poder ahorrarte muchas pulsaciones de teclado simplemente en una, pulsando la tecla del punto. Quizás no es un cambio muy rentable el utilizar comando del punto como reemplazo para operaciones que solo requieren una pulsación de tecla como `x`. Si tu último cambio requiere una operación más compleja, como por ejemplo `cgnconst`, el comando del punto reduce 9 pulsaciones de teclas en una sola, lo que es un buen cambio. -Cuando estes editando, pregúntate si la acción que estás a punto de realizar es propensa de volver a repetirla. Por ejemplo, si necesito eliminar las próximas tres palabras, ¿es más económico utilizar `d3w` o hacer `dw` y después repetir esa acción con `.` dos veces más? ¿Borrarás una palabra de nuevo? Si es así, entonces tiene sentido el utilizar `dw` y repetir la acción varias veces en vez de `d3w` porque `dw` se puede volver a utilizar más veces que `d3w`. Manten una mentalidad "orientada al cambio" mientras estés editando. +Cuando estes editando, pregúntate si la acción que estás a punto de realizar es propensa de volver a repetirla. Por ejemplo, si necesito eliminar las próximas tres palabras, ¿es más económico utilizar `d3w` o hacer `dw` y después repetir esa acción con `.` dos veces más? ¿Borrarás una palabra de nuevo? Si es así, entonces tiene sentido el utilizar `dw` y repetir la acción varias veces en vez de `d3w` porque `dw` se puede volver a utilizar más veces que `d3w`. El comando del punto es muy sencillo y versátil para empezar a automatizar tareas simples. En el próximo capítulo aprenderás cómo automatizar acciones complejas con las macros de Vim. Pero primero, aprendamos sobre los registros para almacenar y recuperar textos.