Curso de Vim: Las macros en #Vim
Las macros en Vim son una gran herramienta para ahorrarnos tiempo en tareas repetitivas

Con las macros podremos guardar una serie de comandos que nosotros introducimos y que se vuelven a repetir cuando los necesitemos.
Veamos cómo utilizar las macros en Vim para ahorrarnos un trabajo tedioso. En este caso, voy a poner un ejemplo propio de cómo las macros me han hecho “el trabajo sucio”.
Este artículo es una nueva entrega del curso “improVIMsado” que desde hace meses vengo publicando en mi blog sobre el editor Vim y que puedes seguir en estos enlaces:
- https://victorhckinthefreeworld.com/tag/vim/
- https://victorhck.gitlab.io/comandos_vim/articulos.html
Y para aprender Vim (de la manera más inteligente) aquí tienes esta útil guía:
Las macros en Vim nos sirven para almacenar una serie de comandos que realizan una acción y después poder ejecutar la misma secuencia de comandos una y otra vez sin necesidad de tenerlos que escribir todas las veces lo mismo.
Os aconsejo leer el capítulo relacionado con las macros de la Guía para aprender Vim de la manera más inteligente:
Voy a poner un caso en concreto. Tenía un archivo con un montón de enlaces en formato html que tenían este aspecto:
<li><a href="https://victorhckinthefreeworld.com/2017/06/14/como-salir-del-editor-vim/">Cómo salir del editor Vim</a></li>
<li><a href="https://victorhckinthefreeworld.com/2018/09/20/mejora-tu-experiencia-usando-el-editor-vim/">Mejora tu experiencia usando el editor Vim</a></li>
<li><a href="https://victorhckinthefreeworld.com/2019/03/05/vim-gitgutter-plugin-vim-git/">vim-gitgutter es el plugin que necesitas si usas el editor Vim para trabajar con Git</a></li>
<li><a href="https://victorhckinthefreeworld.com/2019/03/13/dando-mis-primeros-pasos-con-el-editor-vim/">Dando mis primeros pasos con el editor Vim</a></li>
<li><a href="https://victorhckinthefreeworld.com/2019/03/14/usando-el-editor-vim-para-manejar-listas-todo-de-tareas/">Usando Vim para manejar listas .todo de tareas</a></li>
<li><a href="https://victorhckinthefreeworld.com/2019/03/28/el-editor-kate-de-kde-en-modo-vim/">El editor Kate de KDE en modo Vim</a></li>
<li><a href="https://victorhckinthefreeworld.com/2019/04/02/usando-abreviaturas-en-el-editor-vim/">Usando abreviaturas en el editor Vim</a></li>
<li><a href="https://victorhckinthefreeworld.com/2019/04/10/utilizar-pestanas-en-el-editor-vim/">Utilizar pestañas en el editor Vim</a></li>
<li><a href="https://victorhckinthefreeworld.com/2019/04/17/atajos-de-teclado-de-vim-terminal-gnu-linux/">Atajos de teclado de Vim en nuestra terminal de GNU/Linux</a></li>
Y como esos, una buena lista de muchos otros enlaces más. Y quería convertir esos enlaces en una lista de enlaces pero con formato Markdown. Para que tengan este aspecto:
* [Cómo salir del editor Vim](https://victorhckinthefreeworld.com/2017/06/14/como-salir-del-editor-vim/)
* [Mejora tu experiencia usando el editor Vim](https://victorhckinthefreeworld.com/2018/09/20/mejora-tu-experiencia-usando-el-editor-vim/)
* [vim-gitgutter es el plugin que necesitas si usas el editor Vim para trabajar con Git](https://victorhckinthefreeworld.com/2019/03/05/vim-gitgutter-plugin-vim-git/)
* [Dando mis primeros pasos con el editor Vim](https://victorhckinthefreeworld.com/2019/03/13/dando-mis-primeros-pasos-con-el-editor-vim/)
* [Usando Vim para manejar listas .todo de tareas](https://victorhckinthefreeworld.com/2019/03/14/usando-el-editor-vim-para-manejar-listas-todo-de-tareas/)
* [El editor Kate de KDE en modo Vim](https://victorhckinthefreeworld.com/2019/03/28/el-editor-kate-de-kde-en-modo-vim/)
* [Usando abreviaturas en el editor Vim](https://victorhckinthefreeworld.com/2019/04/02/usando-abreviaturas-en-el-editor-vim/)
* [Utilizar pestañas en el editor Vim](https://victorhckinthefreeworld.com/2019/04/10/utilizar-pestanas-en-el-editor-vim/)
* [Atajos de teclado de Vim en nuestra terminal de GNU/Linux](https://victorhckinthefreeworld.com/2019/04/17/atajos-de-teclado-de-vim-terminal-gnu-linux/)
Claro, editar una línea o cinco, no sería mucho trabajo, pero si ya son 30 o más, eso se puede hacer muy pesado. Menos mal que las macros de Vim, nos permiten hacerlo una vez (y hacerlo bien) y poder replicarlo una, diez o cien veces.
Cómo grabar y ejecutar una macro
Las macros se guardan en registros que son las letras del alfabeto. Es decir, tienes la posibilidad de grabar una macro desde la “a” a la “z”.
Para grabar una macro en Vim, estando en modo normal, pulsamos la letra q para empezar a grabar la macro y una letra, por ejemplo la a para que se grabe la macro en ese registro. Algo así:
q a
Verás que en la parte inferior derecha de la pantalla aparecerá el texto:
grabando @a
Ahora es la hora de empezar a ejecutar las ordenes que queramos/necesitemos y todas esas acciones se quedarán guardadas en el registro de la macro.
Finalizamos la grabación de la macro volviendo a pulsar la letra q. Cuando hayamos terminado, podremos volver a ejecutar la macro con:
@a
En este caso la a porque hemos utilizado este registro para guardar la macro, si has utilizado otro, sería otra letra.
También podremos ejecutar @@ y nos ejecutará la última macro ejecutada (en este caso de nuevo ejecutará la macro a)
Si al ejecutar la macro, vemos que ha realizado la acción correctamente, podremos ya desplegarla para que la haga las veces que quiera, por ejemplo podremos ejecutar la macro 30 veces mediante:
30 @ a
La macro se ejecutará 30 veces o se parará antes si encuentra un error, eso es útil para que la macro se detenga cuando la acción que ejecuta no es la esperada.
Si la acción que ejecuta no es lo que esperamos, podremos volver a grabarla de nuevo, ejecutando esta vez los comandos correctos, en el mismo registro.
Modificar una macro
En vez de volver a escribir de nuevo la macro y guardarla en el mismo registro, podremos depurar las partes que no funcionan de la macro editándola y añadiendo acciones o modificando las partes que deseemos.
Podremos añadir acciones al final de la macro mediante, para eso en vez de utilizar la letra minúscula (en nuestro ejemplo la a) utilizaremos la misma letra pero en mayúscula (en nuestro ejemplo la A).
Simplemente escribiremos qA y los nuevos comandos que queramos que se añadan al final de la macro.
Pero también podremos modificar una macro, no solo añadiendo comandos al final de la macro, si no, modificar partes intermedias de la macro. Cabe resaltar, que deberemos conocer ciertos comandos internos de Vim a la hora de ver cómo se ejcutan internamente comandos como Esc u otros.
- pegamos el contenido de la macro (en nuestro caso la a) con: put a
- Veremos el contenido de la macro
- Modificamos las partes que deseamos
- Guardamos el contenido de la nueva macro, situándonos al inicio de la línea y ejecutando: “ay$
Ahora al ejecutar la macro a, debería realizar nuevas funciones, según lo que hayamos modificado. Podemos ver el contenido de una macro ejecutando el comando
:reg a
Ejemplo práctico
En mi caso, como he dicho, quería cambiar todos los enlaces de html a markdown. Para ello he ejectuado comandos de Vim, he ejecutado complementos de Vim, etc. Veamos cómo:
- Lo primero, llevo el cursor al inicio de la línea (0)
- Quito el sangrado de la línea (<<)
- Elimino la etiqueta
<li> </li>con el complemento surround (dst) - Copio el texto del enlace que hay entre las comillas (yi”)
- Borro la etiqueta a href y me queda solo el texto del texto del enlace
- Encierro ese texto con corchetes (yss])
- Inserto un asterisco al inicio de la línea (I *)
- Añado al final de la línea una apertura de paréntesis y vuelvo al modo normal (A(Esc)
- Pego el texto del enlace que había copiado en el paso 4 (p)
- Añado un cierre de paréntesis (A))
- Bajo una línes (j)
Y vuelvo a pulsar q para finalizarla grabación de la macro. Ahora ejecuto @a y veo que funciona correctamente en la línea siguiente. Es hora de ver cómo Vim realiza el trabajo el solo en todo el texto y ejecuto 99@a
No quiere decir que vaya a ejecutar 99 veces la macro. Como he dicho antes, la ejecución de la macro se detiene cuando ocurre un error, y en este caso cuando encuentre una línea en la que no haya un enlace el proceso se detiene.
Cuando finaliza, veremos que todos los enlaces en formato html se han convertido correctamente a markdown, sin necesedidad de picar texto una y otra vez.
Espero que este ejemplo, te haya servido para descubrir la potencia de las macros y de aprender a utilizarlas cuando sea necesario ahorrándote tiempo y esfuerzo.

Puzzles en GCompris – A fondo @g_compris (11)
Sigo aprovechándome de una publicación de Valencia Tech en la que se realizaba un listado completo de juegos que ofrece GCompris he empezado una serie donde se describen con más detalles las actividades. Seguimos la serie con la sección de «Puzzles» en GCompris donde no podremos aburrirnos si nos gustan este tipo de entretenimientos.
Puzzles en GCompris – A fondo @g_compris (11)
Para poder tener claro lo que hacen las aplicaciones de GCompris he pensado hacer una revisión a su enorme colección de juegos y actividades, realizando una simple captura de pantalla y una breve descripción.
Ya hemos descrito la secciones de:
- Descubre la computadora
- Juegos de lógica
- Bellas Artes
- Música
- Historia y Geografía
- Juegos
- Matemáticas: Numeración
- Matemáticas: Aritmética
- Matemáticas: Medidas
Y ya es hora de hablar de la actividades de la sección «Puzzles» de GCompris donde nos encontramos casi con una decena de miniaplicaciones pensada para rompernos la cabeza montando virtualmente las piezas desordenadas que nos planteen.
Puzzle para niños: una pieza sombreada debe rellenarse con las piezas coloreadas. Empezamos con simples trenes hasta llegar a figuras más elaboradas como camiones o coches.

Encaja el rompezabezas: montar puzzles de obras de arte nos entretiene a la vez que nos permite admirar preciosas pinturas. Empezamos con puzzles sencillos de pocas piezas y con encajes clásicos y finalizamos con puzzles con mayor número de piezas y caras planas.

Dibuja de nuevo la imagen indicada: en esta ocasión se nos muestra un mosaico y debemos reproducirlo. De nuevo la dificultad se va incrementando a medida que subimos hasta el nivel 22.

Construye el mismo modelo: similar al anterior pero con objetos y utilizando movimientos cartesianos.

Encuentra tus manos izquierda y derecha: trabaja la lateralidad con esta actividad donde pondrás a prueba tus nociones espaciales. Más complicado de lo que parece.

Construye el mosaico: completa la la pauta que se muestra. Empieza con cuatro piezas y finaliza con 22. Pon a prueba tu capacidad de copia.

Reflejar la imagen indicada: crea simetrías a partir de un patrón. Una buena forma de ejercitar nuestra mente.

Tangram: crea las figuras sombreadas mediante las figuras del tangram, más complicado de lo que parece… y más divertido también.

Ad-Blocking and Why You Should
OnzeMenu – Plasmoides de KDE (182)
Y ya estamos con otro lanzador de aplicaciones en Plasma. Como he dicho en varias entradas, buscar y ejecutar los programas en el entorno de trabajo Plasma de la Comunidad KDE es altamente personalizable. Hoy os presento OnzeMenu, un lanzador de aplicaciones con el que llegamos a 182 los plasmoides presentados en el blog
OnzeMenu – Plasmoides de KDE (182)
Seguimos con las posibilidades de personalización de Plasma 5 en cuanto a lanzadores de aplicaciones. Al nuevo lanzador que nos vino con Plasma 5.21, a su versión clásica que podéis encontrar en la KDE Store, y a la infinidad de alternativas que tenemos UMenu, Minimal Menu, Simple Menu, Ditto Menu, Popup Launcher o NMenu) se unen modificaciones sobre los mismos.
Hoy toca presenta otro llamado OnzeMenu, una creación de Adhe y que basado en Ditto Menu destaca por su similutud con el nuevo menu de Window 11 (de ahí su nombre), su zona de favoritos y su distribución que lo hace ideal para aquellos configuraciones donde el lanzador está en la zona central del escritorio.

Y como siempre digo, si os gusta el plasmoide podéis “pagarlo” de muchas formas en la nueva página de KDE Store, que estoy seguro que el desarrollador lo agradecerá: puntúale positivamente, hazle un comentario en la página o realiza una donación. Ayudar al desarrollo del Software Libre también se hace simplemente dando las gracias, ayuda mucho más de lo que os podéis imaginar, recordad la campaña I love Free Software Day de la Free Software Foundation donde se nos recordaba esta forma tan sencilla de colaborar con el gran proyecto del Software Libre y que en el blog dedicamos un artículo.
Más información: KDE Store
¿Qué son los plasmoides?
Para los no iniciados en el blog, quizás la palabra plasmoide le suene un poco rara pero no es mas que el nombre que reciben los widgets para el escritorio Plasma de KDE.
En otras palabras, los plasmoides no son más que pequeñas aplicaciones que puestas sobre el escritorio o sobre una de las barras de tareas del mismo aumentan las funcionalidades del mismo o simplemente lo decoran.
Dibujos vectoriales libres para tu proyecto, Openclipart.org
En alguna vez necesitas dibujos vectoriales libres para tu documento creo que el sitio donde debes mirar es Openclipart.org, un proyecto que proporciona imágenes vectoriales para quien las quiera utilizar.
Dibujos vectoriales libres para tu proyecto, Openclipart.org
En mi sincera opinión, no existe una cultura del respeto a la licencias entre los usuarios que me rodean, y puedo asegurar que me rodeo de una gran cantidad de ellas.
Cuando uno de ellos necesita una imagen para un trabajo simplemente las busca en Google Imágenes y la inserta, pensando que como está en la «nube» no es de nadie y puede hacerlo sin problemas.
Claro está que esto no es cierto y que la inmensa mayoría de ellas tienen un copyright… y esto se extiende a las imágenes vectoriales, es decir, a los dibujos que tienen la característica de no perder calidad a la hora de dimensionarse.

Para la búsqueda de imágenes libres de derechos tenemos soluciones como Pixabay o Freepik, pero si queremos cliparts libres la solución se llama Openclipart.org, un proyecto que lleva desde 2004 en funcionamiento, lo cual es sinónimo de solideza.
En Openclipart podréis encontrar más de 160 000 imágenes vectoriales todas ellas de dominio público, es decir, sin problemas de licencias (y gratis), y su número crece día a día (en el momento de escribir el artículo se habían añadido 29 en las últimas 24 horas).

Entre ellas se puede encontrar de todo, desde iconos a archivos vectoriales de calidad pasando por imágenes clásicas en blanco y negro, todas ellas exportables en formato svg o directamente en png.
Para encontrar la imagen que nos interesa tenemos a nuestra disposición un buscador simple o mediante etiquetas, tal y como podemos ver en la imagen inferior de un logo de KDE.

En resumen, el mejor sitio para encontrar dibujos vectoriales para tus documentos se llama Openclipart y, como no podía ser de otras forma, se puede colaborar con él subiendo imágenes propias o ayudando económicamente mediante donaciones.
Más información: Openclipart.org
Actualización de julio del 2021 de KDE Frameworks
Pasamos el ecuador del año y siguen las entradas recurrentes de las actualizaciones mensuales de rigor que demuestra que los desarrolladores de KDE no dejan de trabajar en sus librerías. Así que se congratulan en anunciar la actualización de julio del 2021 de KDE Frameworks. Con esta se llega a la versión 5.84, un suma y sigue de compromiso y constancia que no parece que tenga un final cercano.
Actualización de julio del 2021 de KDE Frameworks
A pesar de que para los usuarios corrientes esta noticia sea algo confusa ya que no se trata de realzar una nueva aplicación ni de una nueva gran funcionalidad del escritorio, el desarrollo de KDE Frameworks tiene repercusiones directas en él a medio y largo plazo.
La razón de esta afirmación es que KDE Frameworks es básicamente la base de trabajo de los desarrolladores para realizar sus aplicaciones, es como el papel y las herramientas de dibujo para un artista: cuanto mejor sea el papel y mejores pinceles tenga, la creación de una artista será mejor.

De esta forma, las mejoras en KDE Frameworks facilitan el desarrollo del Software de la Comunidad KDE, haciendo que su funcionamiento, su estabilidad y su integración sea la mejor posible.
El sábado 10 de julio de 2021 ha sido lanzado KDE Frameworks 5.84, la nueva revisión del entorno de programación sobre el que se asienta Plasma 5, el escritorio GNU/Linux de la Comunidad KDE, y las aplicaciones que se crean con para él.
Hay que recordar que los desarrolladores de KDE decidieron lanzar actualizaciones mensuales de este proyecto y lo están cumpliendo con puntualmente. La idea es ofrecer pocas pero consolidadas novedades, a la vez que se mantiene el proyecto evolucionando y siempre adaptándose al vertiginoso mundo del Software Libre.
Una gran noticia para la Comunidad KDE que demuestra la evolución continua del proyecto que continua ganando prestigio en el mundo de los entornos de trabajo Libres.
Más información: KDE
¿Qué es KDE Frameworks?
Para los que no lo sepan, KDE Frameworks añade más de 70 librerías a Qt que proporcionan una gran variedad de funcionalidades necesarias y comunes, precisadas por los desarrolladores, testeadas por aplicaciones específicas y publicadas bajo licencias flexibles. Como he comentado, este entorno de programación es la base para el desarrollo tanto de las nuevas aplicaciones KDE y del escritorio Plasma 5.

Aquí podéis encontrar un listado con todos estos frameworks y la serie de artículos que dedico a KDE Frameworks en el blog,
Recuerda que puedes ver una introducción a Frameworks 5.0 en su anuncio de lanzamiento.
#openSUSE Tumbleweed revisión de la semana 27 de 2021
Tumbleweed es una distribución “Rolling Release” de actualización contínua. Aquí puedes estar al tanto de las últimas novedades.

openSUSE Tumbleweed es la versión “rolling release” o de actualización continua de la distribución de GNU/Linux openSUSE.
Hagamos un repaso a las novedades que han llegado hasta los repositorios esta semana.
El anuncio original lo puedes leer en el blog de Dominique Leuenberger, publicado bajo licencia CC-by-sa, en este enlace:
De nuvo, durante esta semana se han vuelto a publicar 5 snapshots (0702, 0703, 0704, 0706 y 0707)
Los cambios más interesantes que han llegado a los repositorios son:
- sendmail 8.17.0.3
- Mesa 21.1.4
- PHP 7.4.21
- nodejs 16.4.1
- Linux kernel 5.13.0
- NetworkManager 1.32.2
- bluez 5.59
- Rust 1.53
Pero hay muchas más actualizaciones esperando su turno, por ejemplo estas:
- linux-glibc-devel 5.13
- KDE Gear 21.04.1
- KDE Plasma 5.22.2
- Linux kernel 5.13.1
- libxcrypt 4.4.23
- fmt 8.0.0
Si quieres estar a la última con software actualizado y probado utiliza openSUSE Tumbleweed la opción rolling release de la distribución de GNU/Linux openSUSE.
Mantente actualizado y ya sabes: Have a lot of fun!!
Enlaces de interés
-
-
- ¿Por qué deberías utilizar openSUSE Tumbleweed?
- zypper dup en Tumbleweed hace todo el trabajo al actualizar
- ¿Cual es el mejor comando para actualizar Tumbleweed?
- Comprueba la valoración de las “snapshots” de Tumbleweed
- ¿Qué es el test openQA?
- http://download.opensuse.org/tumbleweed/iso/
- https://es.opensuse.org/Portal:Tumbleweed
-

——————————–
openSUSE Tumbleweed – Review of the week 2021/27
Dear Tumbleweed users and hackers,
From the feeling, I probably have to say, the Summer holiday is upon us. Tumbleweed is still rolling of course: it’s not warm enough to have melted our rubber tires to make them sticky glue. During the last week, we have released 5 snapshots (0702, 0703, 0704, 0706, and 0707)
The main changes included:
- sendmail 8.17.0.3
- Mesa 21.1.4
- PHP 7.4.21
- nodejs 16.4.1
- Linux kernel 5.13.0
- NetworkManager 1.32.2
- bluez 5.59
- MOTD (mot of the day) handing moved from login.defs to pam_motd
- Rust 1.53
Changes planned for the next few weeks:
- linux-glibc-devel 5.13
- KDE Gear 21.04.1
- KDE Plasma 5.22.2
- Linux kernel 5.13.1
- libxcrypt 4.4.23: addition of CRYPT_SALT_METHOD_LEGACY; needs a fix in pam
- fmt 8.0.0
YoloR : Redes Unificadas Implícita e Segmentação Panótica .
O YoloR acaba de ser lançado (paper publicado em maio) e apresenta um novo contexto no setor de visão computacional. Como sabemos, Yolo significa ( You Only Look Once) e YoloR os autores batizaram como (You Only Learn One Representation).
Para entendermos melhor uma Rede Neural Convolucional pode reconhece muito bem um objeto, um animal ou um ser humano de maneira muito robusta. Mas a CNN consegue fazer apenas uma coisa por vez. Tentar identificar a ação de uma determinada pessoa ou o seu vestimento, prejudica a acurácia e/ou desempenho dependendo da técnica aplicada.
O conhecimento implícito refere-se ao aprendizado involuntário, o conhecimento explícito é aplicado em DeepLearning. Pois o aprendizado ocorre baseado em técnicas holísticas (aprendizado baseado na observação).
Em outras palavras o modelo explícito reconhecerá um computador, já o modelo implícito reconhecerá o botão power, o leitor de DVD, se encontra no estado ligado e outros detalhes. Outra informação importante, o processamento não é baseado apenas na imagem, e sim em som e textos.


Logo podemos entender que o YoloR é uma implementação do aprendizado explícito e implícito com uma rede unificada. Então várias tarefas pode ser realizadas. No paper https://arxiv.org/abs/2105.04206 os autores mencionam experimentações com detecção de legenda, objetos, segmentação de instância, segmentação panótica, e muito outros no futuro. Compreensivelmente, este novo Deep Learning Implícito e unificado, contém muito mais matemática envolvida em sua arquitetura unificada.
Conclusão: Comparando o YoloR com os algoritmos de última geração no estado da arte, como o Yolov4, EfficientDet e outros, o YoloR demonstra acurácia similar. Entretanto é assustador a performance em FPS (quase o dobro)!
Em breve mais detalhes de Implementação deste novo brinquedo no setor de IA com visão computacional.

Pendaftaran Peserta Indonesia OpenInfra Days 2021

Tautan pendaftaran: https://s.id/ioid21_register
Info lebih lanjut: https://openstack.id/ioid21/
Komunitas openSUSE Indonesia merupakan mitra komunitas Indonesia OpenInfra Days 2021
