Curso de Vim: Usando el «punto» en el editor #Vim

El comando del «punto» . en el editor #Vim es una interesante herramienta que nos puede ser muy útil.

Continuamos con la serie improvisada de tutoriales sobre el editor Vim, de cosas que voy aprendiendo y que comparto en el blog.

Hasta ahora hemos aprendido cosas como:

Y en esta ocasión veremos qué uso darle al comando del punto «.» y cómo nos puede hacer muy sencillas muchas tareas en Vim.

Este artículo es una traducción/adaptación de un artículo en inglés escrito por Jovica Ilic, a quien pedí permiso para poder utilizarlo en mi blog, que publicó en su web y que te recomiendo visitar:

El comando «.» en Vim lo que hace es repetir el último comando ejecutado, tantas veces como lo pulses. Veamos unos ejemplos de cómo nos puede ayudar al usar Vim.

Pongamos el ejemplo de que queremos borrar 5 palabras en un texto. Para ello podemos borrarlas de una vez mediante el comando 5dw

Esto «nos obliga» a, mientras estamos editando, contar mentalmente el número de palabras que queremos borrar. Y puede que a veces sean más palabras o a veces menos. Aquí es donde el comando del punto . nos viene a ayudar.

Si queremos borrar una cantidad de palabras desde la posición del cursor hacia adelante, y no sabemos la cantidad de palabras a borrar y no queremos contarlas mentalmente, simplemente ejecutamos el comando dw que nos borrará una palabra y después borramos las siguientes palabras pulsando el punto . y repetirá el comando tantas veces como palabras queramos borrar.

El comando del punto . repite el último comando ejecutado. Pero solo aquellos que modifican el contenido del buffer. Por ejemplo, si ejecutamos el comando Ctrl+D para bajar una página del texto, si después pulsamos el punto «.» esto no repetirá el comando bajando otra media página el texto.

Te recuerdo que al pulsar el punto solo se repetirán los comandos que de alguna manera inciden en el buffer, modificando de alguna manera el texto.

Espero que te haya resultado útil y que poco a poco vayas conmigo descubriendo lo que ofrece Vim, o que si ya eres un experto usuario/a de Vim quizás hayas descubierto algo interesante en este u otro artículo de la serie.

5 comentarios sobre “Curso de Vim: Usando el «punto» en el editor #Vim

  1. Muy útil

    Para borrar del cursor al final de la línea prefiero D; pero sin duda gran tipo con el punto, se me hace que entra a mi repertorio de comandos en VIM

  2. Para lo que mas utilizo el comando ‘.’ es cuando hago rebase de varios commits en git en modo interactivo y quiero hacer la misma operacion «fixup» en varios commits.

    Por ejemplo, si tengo tres commits

    user@host:~$ git log -3
    commit b0ae165953632026f178b710f0007f324a886be1 (HEAD -> tmp)
    Author: Sergio
    Date:   Fri Mar 13 20:39:22 2020 +0100
    
        Three commits
    
    commit d35b1cd39ef5b61d8379372ab741e9122f5050c4
    Author: Sergio
    Date:   Fri Mar 13 20:38:00 2020 +0100
    
        Two commits
    
    commit a4d9da0f88d9c17e8a73f6c580864215347bb106
    Author: Sergio
    Date:   Fri Mar 13 20:37:24 2020 +0100
    
        one commit
    

    Y quiero hacer mezclarlos (squash) porque en realidad el segundo y tercer commits eran para arreglar algo que había hecho mal en el primer commit.

    user@host:~$ git rebase --interactive origin/master
     1 pick a4d9da0 one commit
     2 pick d35b1cd Two commits
     3 pick b0ae165 Three commits
    [...]
    12 # f, fixup  = like "squash", but discard this commit's log message
    [...]
    

    Coloco el cursor de vim sobre la letra ‘p’ (pick) del segundo commit y ejecuto el comando ‘cw’ (change word) que borra la palabra pick y vim cambia a modo insert. Entonces escribo ‘f’ (fixup) y pulso ‘esc’ para volver al modo comando.

    user@host:~$ git rebase --interactive origin/master
     1 pick a4d9da0 one commit
     2 f d35b1cd Two commits
     3 pick b0ae165 Three commits
    [...]
    12 # f, fixup  = like "squash", but discard this commit's log message
    [...]
    

    Y ahora solo tengo que ir pulsando abajo y pulsar ‘.’ por cada linea en los commits sobre los que quiera hacer squash.

    Espero que se entienda 🙂

  3. Muy bueno como siempre!!!! justo hoy habia leído la fuente y no lo habia entendido…. la barrera del idioma! ahora entiendo porque dot borra solo lo editable.
    Si puedo aportar algo seria…. el comando dw borra la parte de la palabra que resta, si el cursor esta en la anteult. letra de la palabra con dw se borrara lo resta de la palabra, pero si el comando es diw se borra toda la palabra completa este donde este el cursor posicionado dentro de la palabra a borrar, y claro funciona tambien.!
    te sigo leyendo.

Me gustaría saber tu opinión. Deja un comentario (Puedes usar MarkDown)

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.