Curso de Vim: entrevista a un desarrollador que utiliza #Vim

¿Cómo usa Vim un desarrollador que lo utiliza de manera intensiva desde hace años? En esta interesante entrevista en exclusiva podrás descubrirlo.

Desde que empecé a utilizar Vim, por el blog han aparecido muchos tutoriales sobre mi experiencia y aquello que poco a poco voy aprendiendo sobre este editor de texto. Puedes encontrar cómo hacer tal cosa, qué hace tal o cual complemento, incluso una entrevista a un periodista que utiliza Vim en su trabajo.

Pero desde hace tiempo, tenía en mente hacer una entrevista a una persona que utilizara el editor Vim como herramienta en su trabajo como desarrollador de software. Alguien que utilice Vim (o algunas de las opciones del planeta Vim, léase: Vi, neovim, etc) de una forma intensa y que después de muchos años de uso haya conseguido sacarle todo el jugo de las posibilidades que ofrece Vim.

Mi primera opción fue un desarrollador que trabaja actualmente para SUSE en el equipo que desarrolla YaST, llamado Ancor, pero declinó la invitación porque bajo su criterio no era un buen candidato.

Sin embargo ha tenido la amabilidad (muuuchas gracias por eso) de pasarme el contacto de un desarrollador que conoce, llamado Ignacio, con el trabajó en el pasado y que en palabras del propio Ancor es «el mayor hechicero de Vim con el que he trabajado».

Así que agradecer a Ancor el haberme pasado ese contacto y a Ignacio el haber accedido a esta «proposición» totalmente decente, en la que nos desvelará algunos de los trucos que usa en Vim y algún proyecto personal muy interesante relacionado con Vim.

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:

Pero mejor que sea el propio Ignacio quien nos lo explique en esta entrevista en exclusiva para el blog. Todo un placer y un privilegio:

Vhck: Lo primero, háblanos un poco sobre ti (lo que quieras contar).

Ignacio: Bueno, que difícil es esa pregunta, pero lo intentaré :). Soy el típico informático de vocación y, la verdad, parece que estaba predestinado a serlo, pues comencé con un Sinclair ZX Spectrum de 16Kb con teclas de goma que me compré con una quiniela de 12 resultados que gané a los 12 años, y luego seguí con un IBM PC de los originales con dos disqueteras de 5,25″ que se ganó mi padre en el sorteo final de un curso de informática en el diario de Tarragona (la suerte ya no siguió después ;-).

Posteriormente descubrí Linux con Slackware, luego vino Redhat y la mayoría del tiempo usé Debian. Principalmente me gustaba KDE como entorno de escritorio, aunque estuve mucho tiempo usando gestores de ventanas ligeros, pues era lo más personalizable y potente.

Luego llegó el 2011 en el que el gusanillo/manía de probar cosas nuevas me hizo comprarme un Macbook Pro de Apple (lo único de la marca con lo que sigo contento, aunque el teclado de mi modelo actual del 2017 lo odio profundamente, y uso un teclado externo que me regalaron, también de apple).

Parte de la culpa de haber acabado como he acabado, es por cómo funciona mi cerebro, la cual es una de las cosas que me gustaría saber porqué.

No soy el típico «empollón» que se aprende las lecciones de memoria (nunca conseguí sacarme así una asignatura sin entenderla, lo que por desgracia se prima y mucho), pero soy capaz de aprenderme casi cada día nuevos atajos de teclado (incluidos los de Vim XD) con usarlos un par de veces, así como matrículas, números de teléfono, contraseñas, ese tipo de cosas.

Además, a pesar de mi limitación para memorizar «rollo», tengo la suerte de contar con un pensamiento lógico para deducir a partir de datos iniciales, lo cual me ha venido muy bien para solucionar situaciones «misteriosas» como las que nos encontramos día a día en el mundo de los ordenadores.

¿Y todo este rollo a qué viene? Pues creo que dará a entender mi gusto por el Vim, ya que la memoria extraña para cosas puntuales me permite ver lógicas algo raras que me facilita de alguna manera el «entender» el uso de un editor tan particular.

Y ya de forma más personal, trabajo desde hace más de 20 años como programador (actualmente desarrollo aplicaciones web en Ruby On Rails, aunque he dado «tumbos» por otros lenguajes y disciplinas informáticas y también me gusta hacer algunas tareas de sistemas y sobre todo «tunear» cosas para facilitarme la vida, (soy un poco lo que se llama un McGiver) a pesar de haber estudiado una carrera de ingeniería industrial eléctrica.

Por lo que he visto en tu blog, comparto contigo bastante, y me ha gustado especialmente y me describe perfectamente la imagen de «Por que amo el software libre», y aunque me gusta «ayudar» en lo que puedo, reconozco que lo hago muy poco y en píldoras muy puntuales. Y además de la informática, me encanta la ciencia ficción y soy también adicto al simracing, con el que llevo muchos años aunque de forma amateur.

Vhck: Cuándo y cómo fue tu primer acercamiento a Vim y cómo fue ese primer contacto.

Ignacio: Pues la recuerdo perfectamente, y todo el que se acerca a este editor supongo que lo hará igual, pues es muy fuerte el impacto que provoca. Fue delante de una estación de trabajo en la universidad viendo a un amigo (el que posteriormente fue mi primer «Jefe» en el mundo laboral) y pensé «qué demonios está haciendo éste con esas combinaciones de teclas tan extrañas, algún tipo de sortilegio?» XD.

Ese fue mi primer contacto, e inmediatamente tuve mi primer acercamiento, pues la asignatura de informática en ingeniería industrial venía acompañada de esas estaciones Digital de trabajo prehistóricas con sistema VAX-VMS, y ellas con el omnipresente Vi.

¿Y cómo fue ese acercamiento? pues también lo recuerdo perfectamente y seguro que a mucha gente también le pasaría lo mismo (de hecho he visto que tu primera entrada de Vim en el blog va de ello :).

Entro a editar un fichero con toda la ilusión del mundo, y cuando intento salir del editor guardando los cambios sin haber mirado ningún manual de uso (quién lo hace a priori? XD), no tengo más que poner el proceso en background y matarlo (menos mal que ya conocía el ctrl-z y el kill :).

Sí, es un momento de impotencia/rabia/vergüenza que ahora recuerdo con diversión, pero luego se convirtió en muchos años disfrutando de tan potente herramienta.

Vhck: ¿Qué te hizo seguir utilizando Vim en tu trabajo como desarrollador hasta el día de hoy? ¿Cual fue tu momento «eureka»?

Ignacio: Pues no recuerdo ningún momento «eureka» en particular, más que nada es mi «manía» por evitar cualquier actuación «manual» y mi adicción a automatizar cosas la que me hizo comenzar con «qedit» y descubrir el maravilloso mundo de las macros (no estoy 100% seguro de que no hubiera algún otro editor antes que qedit, pero estamos hablando de hace muchos años y vivencias en el mundo informático como para acordarme de todo).

Después de eso fue cuando tuve mi primer lector de CDROM, que venía acompañado de un disco repleto de software, donde descubrí Linux y ahí retomé en serio mi contacto con Vi, y ya para toda la vida.

Vhck: Me has comentado que utilizas no únicamente Vim, si no toda la familia. ¿Cuando usas Vi, cuando Vim y qué utilizas en el día a día para tu trabajo?

Ignacio: Básicamente uso Vim en mi día a día desde hace años, más o menos tuneado y en diferentes versiones (actualmente NeoVim), pero tengo claro que sólo con la base de Vi ya soy feliz, y si entro en algún servidor/router/loquesea que tenga vi, no suelo encontrarme desamparado y tunearlo de entrada, sino que me arreglo con lo básico y si ya lo tengo que usar de forma más repetida le meto lo que haga falta. Por supuesto, en el windows que uso para simracing también lo tengo instalado 🙂

Vhck: ¿Qué tareas realizas con Vim?

Ignacio: Principalmente lo uso para escribir código, aunque la gente que me conoce sabe de mi «alergia» a los interfaces gráficos, no por ningún «esnobismo» sino porque muchas veces me «molesta» quitar las manos del teclado y usar ratón y tengo claro que soy más productivo con el teclado, por lo que de forma natural uso Vim para editar casi cualquier texto.

Estarán pensando que tendré el navegador con alguna extensión para usarlo en modo Vi, y en algún momento lo he probado, pero no llego a ser un fanático enfermizo, sé cuándo algo me resulta útil/cómodo y cuando no.

Aún así, el otro día me sorprendí pensando en cómo podría editar una hoja de cálculo en la que tenía que hacer edición repetitiva, no sólo de números, pues eso ya se puede hacer como csv, sino fórmulas y todo, pero no pudo ser XD.

Vhck: ¿Por qué seguir utilizando el editor Vim, frente a otras opciones quizás más modernas?

Ignacio: En un principio no sabía qué responder a esa pregunta, pero trabajando con Ancor y su hermano hace años me llegó la respuesta. Varios de nosotros comenzamos un mini curso de Emacs para probar y nos gustaba, pero sólo su hermano siguió con él, ya que otro compañero y yo pensamos que no había una razón técnica preponderante, y el tiempo hasta llegar al nivel que teníamos en Vim no iba a compensarnos.

¿Porqué Emacs y no otros? lo principal en mi es que no soy nada fanático (arriba hablo de que uso un Macbook Pro, pero he tenido iPhone y iPad y me he quedado con Android de teléfono, a cada cosa lo suyo, no por ser de una marca lo tengo que usar), reconozco que Emacs es igualmente potente y flexible, por lo que era natural en mi probarlo, de hecho había usado un poco el lenguage Lisp en autocad (sí, también descubrí que era automatizable 🙂 y en una calculadora HP48 RPN (lógica polaca inversa) y me gustó la experiencia, por lo que tenía curiosidad de poder usarlo como mi editor de confianza ;-).

Sí, sé que esas dos alternativas no son lo que te referías con modernas, pero mi predilección por ese tipo es por lo que comentaba antes de mi «alergia» por los interfaces gráficos, aunque como veremos posteriormente, al final estoy usando vscode… con Vim, naturalmente 😉

Vhck: Llevas usando Vim de manera intensa en tu trabajo muchos años ¿hay en tu caso espacio para el asombro y para el aprendizaje de nuevas funcionalidades de Vim o ya nada te puede sorprender?

Ignacio: La verdad es que una de las cosas que más me gusta de Vim es que no deja de sorprenderme, y el mundo de sus extensiones es inmenso, por lo que sí, sigo dejándome sorprender.

Vhck: Vi/Vim/Neovim «vitaminado» o prefieres un sabor «vainilla». Es decir, prefieres tenerlo adaptado a tus gustos con tus personalizaciones o utilizar en la medida de lo posible lo que «viene de serie».

Ignacio: Pues depende de las circunstancias, pues trabajo en mi equipo principalmente, pero también bastante en servidores remotos y alguna vez en routers o equipos «limitados». Evidentemente me siento más cómodo en mi versión «tuneada», aunque no tengo ningún problema en usarlo «a pelo».

Vhck: ¿Qué configuración o característica propia de Vim te resulta imprescindible? ¿Qué última mejora en Vim te resultó más útil y necesaria?

Ignacio: A riesgo de ser demasiado «purista» diría que la base «modal» del editor es lo que se usa más, los 3 comandos principales de c(hange), d(elete) y y(ank) con los parámetros de movimiento y sobre todo el comando ‘.’ para repetir.

Ah, y por supuesto las expresiones regulares (sí, también soy medio adicto a ellas y cuadraron en mi cerebro de forma casi nativa :).

Respecto a mejoras de los últimos tiempos, pues diría que los popups de NeoVim, pues es de las pocas cosas de interfaces gráficos que veo útiles para mostrar información de forma más clara :). Seguro que ahora mismo no me acuerdo de otras cosas incluso más importantes, pero es un mundo tan extenso en si mismo y lo tengo tan interiorizado que me cuesta acordarme de algo en particular.

Vhck: ¿Cual echas en falta?

Ignacio: No sé si te refieres a algo que todavía no se haya inventado o a algo que tengan otros editores y no Vim, pero ahora mismo no me viene nada a la mente. No es que Vim lo haga todo, pero en el momento en que encuentro alguna necesidad suelo encontrar algo que la soluciona, si no totalmente sí en parte, o me hago algún pequeño parche para no tener que sufrirla demasiado 🙂

Vhck: ¿Qué complemento o plugin de Vim te resulta imprescindible y lo usas cada día en tu trabajo?

Ignacio: Siempre que empiezo alguna nueva fase de personalización desde cero suelo echar de menos ciertas de ellas, como son aquellas para trabajar con «pares» (paréntesis, corchetes, comillas, etc…) o con mis ficheros de wiki en texto, u otras para gestionar repositorios de git. Seguro que ahora mismo se me olvidan muchas, pero eso es lo que suelo añadir de entrada.

Vhck: Por cierto ¿Qué tema de colores utilizas?

Ignacio: Pues es de las cosas que «más rabia» me da, pues no he encontrado ninguno que me guste totalmente y no tengo paciencia ni creatividad para hacerme uno yo mismo.

Lo que tengo claro es que tiene que ser con fondo oscuro y ahora mismo estoy usando «hybrid» con alguna personalizacion de colores de cosas que me molestan más de la cuenta.

Vhck: Me has comentado que tienes un proyecto entre manos que auna Vim y Vscode. ¿qué tiene de especial el proyecto y qué nos puedes contar de el?

Ignacio: Bueno, realmente no es un proyecto mío sino algo que descubrí hace poco, por lo que hablaré un poco de mi último cambio en el ecosistema de Vim. Hasta hace poco he usado durante bastante tiempo el proyecto vim-config de Rafael Bodill (de hecho sigo usándolo con el Vim en terminal), y lo comentaré aquí para las personas que no quieran usar Vscode (está muy bien comentado en la página de github, por lo que recomiendo su visita).

Me gustó mucho la forma de integrar un montón de extensiones pero no cargar demasiado el entorno, usando una aproximación «lazy» que permite tener diferentes entornos de trabajo (p.ej. para lenguajes de programación variados) y sólo cargar la mayoría de ellas en el momento necesario.

Una de las cosas que descubrí con él fue la posibilidad de usar extensiones de vscode (proyecto https://github.com/neoclide/coc.nvim) y la existencia del Language Server Protocol (LSP), lo que permite (junto a la posibilidad de Vim de ejecutar operaciones de forma asíncrona) usar compiladores, linters, embellecedores de código, etc… de forma integrada y tener un IDE en toda regla.

Como comentaba, estuve bastante tiempo «jugando» y disfrutando de esa configuración, pero hay algo que me molesta mucho, y es usar algo en modo texto y que sea pesado (no es que sea lento, pero yo soy demasiado exigente y mi uso de teclado a veces me hace llegar al límite de lo soportable 🙂 y además, veía a mis compañeros usar un IDE gráfico como Vscode con total rapidez (también había jugado con interfaces gráficos de vim, pero o usaban node con electron y no me acababan de ir bien, o no eran completamente lo que quería).

Además los astros se alinearon y en mi lector de feeds apareció una noticia sobre una extensión de Vscode para usar NeoVim de forma perfectamente integrada (no la ya existente que permitía un modo emulado), y lo probé y pensé «tengo lo que amo y además de forma rápida!!??».

De esta forma uso muchas de las extensiones de Vscode que ya usaba anteriormente y las de Vim que necesito porque no están en Vscode o prefiero usarlas por otros detalles.

Así que ésta es mi situación actual, conociéndome no aseguro que no vaya a cambiar, más que nada porque he empezado hace muy poco con ella y apenas he rascado la superficie, pero ahora mismo estoy contento de esta forma y estoy en la fase de enamoramiento inicial XD.

Vhck: Supongo que utilizas Vim en diferentes máquinas ¿de qué manera «sincronizas» Vim y las configuraciones entre distintos equipos que utilizas?

Ignacio: La verdad es que es una de mis asignaturas pendientes, aunque es así por lo que comentaba más arriba, aparte de mi equipo principal, sólo suelo usar Vim en servidores remotos, y tampoco me gusta la idea de dejarlos llenos de «cosas», y como me siento cómodo con lo mínimo, lo más que suelo hacer es añadir la opción «nocompatible» al vimrc para poder usar Vim en todo su potencial, y poco más, alguna que otra opción.

Aún así, reconozco que debiera tener una versión ligera con lo necesario de mi extenso vimrc (más que nada de los ficheros accesorios, pues el vimrc poco tiene 🙂 y sincronizarla de alguna forma, pero si no lo he hecho es porque no me ha molestado mucho ;-).

Vhck: ¿Cual crees que es el «secreto» para dominar Vim? ¿Algún recurso que utilizaste en su día y que quieras recomendar?

Ignacio: No recuerdo cómo comencé a aprenderlo, creo que el comando h(elp) XD, sobre todo por lo que expliqué al comienzo sobre como funciona mi cerebro y la facilidad para aprender «cosas raras» sobre la marcha, pero cuando explico Vim a alguien suelo recalcar la importancia de entender perfectamente los 3 comandos básicos (evidentemente comenzando por tener clara la filosofía modal de funcionamiento), los modificadores de movimiento y las operaciones relativas para poder usar el ‘.’ y repetir operaciones (con eso se tiene mucha potencia).

Luego ya hacer búsquedas y reemplazos, quizá por curiosidad la grabación de macros o el comando ‘g’, y así seguir ya con el maravilloso mundo de las extensiones :). Y si a alguien le gusta aprender jugando, que visite https://vim-adventures.com/ ;-).

Vhck: ¿Alguna vez te has planteado utilizar otros editores de texto para tu trabajo? ¿Por qué seguiste usando Vim frente a otras opciones?

Ignacio: Creo que esto ya está contestado más arriba, por ahora creo que seguramente no cambiaré, teniendo en cuenta que no considero un cambio la forma en que me he pasado a Vscode. Básicamente la memoria muscular adquirida hace muy complicado que encuentre algo que sin el vim por detrás me haga mejorar mi productividad.

Vhck: ¿Te importaría compartir una captura de pantalla de tu Vim?

Ignacio: Por supuesto, te adjunto una de mi NeoVim en terminal (pues lo sigo usando bastante en paralelo con Vscode, por lo de usar el teclado y eso :), aunque no se ve mucho, me gusta tener pocas distracciones a la vista.

Captura de pantalla de Ignacio

Vhck: Muchas gracias por tu tiempo y por responder a estas preguntas. La última palabra es tuya para decir lo que quieras:

Ignacio: Pues nada, agradecerte a ti también el haberme dado la posibilidad de hablar de algo que me gusta mucho y forma parte importante de mi día a día, y ya sabes, sigue con tu «evangelización»… es broma ;-), con tu curso «improVIMsado».

La verdad es que se me quedan en el tintero muchísimas cosas, aunque bastantes de ellas las has comentado en tu blog, pero igual le doy una segunda lectura más profunda y te paso un día de estos una lista con lo que me venga a la mente y crea que te pueda servir a ti y a otros usuarios.

Espero no haberme enrollado mucho, aunque viendo lo que se me va ocurriendo cada vez que reviso el texto, podría haber sido mucho peor y siento que me quedé muy corto ;-).

Espero que la entrevista os haya parecido tan interesante e inspiradora como me ha parecido a mí. Un placer leer las respuestas de un usuario de Vim con tanta experiencia y tanto uso de este editor de texto.

Quizás al leer sus respuestas veas un paralelismo con tu experiencia personal, o quizás no, pero espero que en ambos casos te haya resultado interesante la lectura.

Y ahora que tan de moda se ha puesto la palabra y los podcasts, reivindico la palabra escrita (por la que Ignacio también tiene preferencia) porque a la hora de buscar algo, podemos encontrarlo sin necesidad de tener que escuchar todo.

Como decía un compañero de trabajo: «Lo escrito, se puede leer». Una perogrullada que guarda verdad. Ahí queda para disfrutarlo a la dosis que quieras.

Tienes los comentarios del blog para compartir tu opinión al respecto de la entrevista, me gustaría leerlas.

10 comentarios sobre “Curso de Vim: entrevista a un desarrollador que utiliza #Vim

    1. Hola!
      Pues bienvenido a este pequeño espacio de la red!! 🙂
      Me alegra si te resultó interesante. A mí me lo pareció cuando la leí! 🙂

      Saludos y gracias por la visita y por comentar!

  1. Muy interesante entrevista y llena de info muy útil
    Al tener una preferencia personal por reutilizar equipos viejos o considerados obsoletos con Devuan, Vim resultadó ser una herramienta im-pre-sio-nan-te (guiado bastante por el curso improVIMsado).
    Vim es un camino de ida!

    1. Hola!
      Me alegro de que te haya gustado la entrevista. Me gustaba dar a conocer cómo usa alguien Vim de manera intensiva y desde hace años.
      Gracias por el feedback positivo por la serie de artículos de Vim. Uno nunca tiene claro si interesan a alguien mas aparte de a uno mismo…
      Saludos

  2. Excelente entrevista y tu blog con tus explicaciones sobre este maravilloso editor es a mi criterio el mejor en español que existe a día de hoy. Muchas gracias por la dedicación y compartirlo con todos…en este momento uso nvim para empezar a programar la Raspberry Pi Pico en C/C++ pero el auto completado me tiene un poco desesperado, ya instalé los plugins para C /C++ y el coc-nvim con ccls como lspi pero por alguna razón que no he podido conocer no me encuentra en el #include «pico/stdlib.h» me sale error en clang no encuentra el archivo, pero si compilo el archivo.c todo me funciona bien, solo que no puedo usar el autocompletado para la pico. Si alguna sugerencia se los agradezco mucho. Un Abrazo desde Colombia.

    1. Prueba instalar algún lsp de c++ con Mason, si es muy complicado instalarlo prueba kickstart.nvim convierte neovim en un IDE al instante

Responder a leo Cancelar la respuesta

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.