Para mi Neovim es el mejor editor que existe porque: es ligero, puedes usarlo sin necesidad de usar un teclado, puedes configurar cada aspecto, entre otras cosas. Pero para lograr todo eso, es necesario editar la configuración del programa de acuerdo a tus necesidades y si no tienes experiencia en el tema puede ser abrumador y dificil.

¿Qué es NvChad?

En los últimos años han salido proyectos que te permiten dar una configuración inicial de nvim. De esta forma puedes empezar a usar el editor y disfrutar de los mejores plugins y funcionalidades sin entrar a editar la configuración inicial.

NvChad es uno de estos proyectos y fue el que decidí usar, porque a pesar de contar con una personalización que hice desde hace años. Me pareció mas fácil migrar y mantener mi configuración usando NvChad. Este helper (como le dicen a este tipo de proyectos en la comunidad de nvim) me parece muy fácil de usar, las características por defecto son poderosas y el editor queda visualmente muy bien.

Nvim con NvChad
Nvim con NvChad editando su propia configuración usando el tema ayu_light

Versión 2.5.0

Hace un par de horas salió esta nueva versión 2.5, justo cuando iba a realizar ajustes a mi configuración. Pues al ver los cambios, vi que tienen una nueva arquitectura mucho mas sencilla y mas fácil.

En versiones anteriores, NvChad se presentaba como un repositorio que contenía toda la configuración necesaria para transformar Neovim y aprovechar al máximo las funcionalidades que ofrece NvChad, incluyendo la instalación de complementos, configuraciones personalizadas, entre otros aspectos. Para realizar personalizaciones o ampliar las configuraciones, se proporcionaba una carpeta designada donde podías mapear la configuración en el sistema de archivos y realizar tus ajustes. Sin embargo, este enfoque tenía sus inconvenientes, ya que requería estudiar y comprender la estructura, para adaptara las configuraciones según la forma en que este estaba organizado.

NvChad como un plugin externo

Desde la versión 2.5.0 ahora es un plugin que se instala de forma externa. Solo debes clonar el repositorio que incluye una configuración mínima e ir agendando tus configuraciones en los archivos especificados.

La ventaja ahora es que ya no es necesario revisar la configuración predeterminada de NvChad. Los archivos dentro de la carpeta de Neovim contienen exclusivamente tus personalizaciones, lo que hace que el proceso sea menos intrusivo y más acorde con la filosofía de Vim.

Cómo migré mi configuración

Comienzo diciendo que el script de migración no me sirvió. Así que me tocó empezar de nuevo:

  1. Hacer un fork del repositorio de configuración inicial.
  2. Copiar todos tus archivos de la carpeta /lua/custom/configs a /lua/configs.
  3. Copiar el contenido de tu lista de plugines a lua/plugins/init.lua y eliminar todo prefijo de custom. para que valores como custom.configsy custom.plugins quede como configs. y plugins. respectivamente.
  4. Copiar tus mapeos de teclas a /lua/mappings.lua y usar la nueva sintaxis. Esta parte implica actualizar la estructura, sin necesidad de realizar trabajo adicional.
  5. Una vez completados estos pasos, inicia Nvim y los plugins se instalarán automáticamente. No olvides revisar posibles errores de sintaxis y ajustarlos según sea necesario. En mi caso, para LSPConfig, tuve que ejecutar el comando :Mason para instalar las dependencias del linting.

¡Listo! Si deseas ver el resultado de mi configuración puedes hacer un fork de mi configuración de NvChad y empezar desde allí.

Happy forking!

La entrada Nvchad 2.50: nueva arquitectura y cómo migrar se publicó primero en El blog de Skatox.

Para los que no conocen a VIM, es una versión mejorada del editor de texto VI y es uno de los editores mas populares en las distribuciones Linux y es una herramienta que todo sysadmin debe conocer.

Un amigo me pidió hace unos días que lo ayudara a aprender esta herramienta, y en mi búsqueda de material para ofrecerle encontré esta joya y decidí compartirla.

https://anderrasovazquez.github.io/curso-de-vim/

Es un pequeño curso realizado por Ander Raso Vazquez con la finalidad de enseñar lo básico del uso de esta gran herramienta.

Espero que esta información les sea útil, saludos.

Exportar tu shell script a HTML, con sintaxis resaltada en colores es posible con la ayuda de Vim y este comando:

vim -f +"syn on" +"run! syntax/2html.vim" +"wq" +"q" hola.sh

Esta linea convierte hola.sh a hola.sh.html, el parámetro -f forza a Vim a permanecer en el primer plano, cosa que es útil si Vim va a ser utilizado por otro programa como un cliente de correos o en nuestro caso este script.

Activar el coloreado de sintaxis y ejecutar el plugin 2html.vim seria la segunda parte de este script. Aquí pasa algo peculiar, plugin 2html.vim divide la pantalla de Vim donde la parte superior es el código HTML y la inferior es el documento original. Seguidamente se le envía wq para salvar y salir de la primera ventana y se le envía q para que termine con la ventana restante.

La salida de esta linea seria hola.sh.html y luce así:

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>/tmp/hola.sh.html</title>
<meta name="Generator" content="Vim/7.4">
<meta name="plugin-version" content="vim7.4_v1">
<meta name="syntax" content="bash">
<meta name="settings" content="use_css,pre_wrap,no_foldcolumn,prevent_copy=">
<meta name="colorscheme" content="none">
<style type="text/css">
<!--
pre { white-space: pre-wrap; font-family: monospace; color: #000000; background-color: #ffffff; }
body { font-family: monospace; color: #000000; background-color: #ffffff; }
* { font-size: 1em; }
.Comment { color: #0000c0; }
.Constant { color: #c00000; }
.Statement { color: #af5f00; }
-->
</style>

<script type='text/javascript'>
<!--

-->
</script>
</head>
<body>
<pre id='vimCodeElement'>
<span class="Comment">#!/bin/bash</span>
<span class="Comment"># orvtech.com</span>
<span class="Statement">echo</span><span class="Constant"> </span><span class="Statement">&quot;</span><span class="Constant">Este script sera convertido</span><span class="Statement">&quot;</span>
<span class="Statement">echo</span><span class="Constant"> </span><span class="Statement">&quot;</span><span class="Constant">a HTML usando Vim</span><span class="Statement">&quot;</span>
</pre>
</body>
</html>
<!-- vim: set foldmethod=manual : -->
#!/bin/bash
# orvtech.com
echo "Este script sera convertido"
echo "a HTML usando Vim"

Incorporar este script en un bucle para que convierta todos los shell scripts a HTML es fácil, con un bucle for, lo podemos hacer, quedaría así:

for ARCHIVO in `ls *.sh`
  do echo -e "Convirtiendo $ARCHIVO a HTML"  vim -f +"syn on" +"run! syntax/2html.vim" +"wq" +"q" $ARCHIVO
done