Desde que inicié en el mundo del desarrollo, he pasado por una variada cantidad de editores de código, cada uno me ha ofrecido sus particularidades, y poco ha poco he ido definiendo qué me gusta y qué no.
A continuación compartiré contigo mi camino desde los primeros editores de código y cómo terminé usando NeoVim como mi editor de código principal.
Sublime Text 3
En 2015, cuando recién aprendía a programar en PHP y JavaScript, usaba Sublime Text 3. Era un editor minimalista y simple que cumplía con su función, y me encantaba.
En aquel entonces, venía con el tema de color Monokai por defecto, un esquema que hasta el día de hoy sigue siendo de mis favoritos, ya sea por nostalgia o porque realmente está bien diseñado.
Atom
Con el tiempo, en un foro vi la recomendación de un editor del que nunca había escuchado hablar: Atom.
Atom no era exactamente la base de lo que más tarde sería VS Code, pero ambos compartían una visión parecida: editores modernos, extensibles y construidos sobre Electron. Atom fue desarrollado por GitHub y era completamente open source. En ese momento, yo estaba buscando usar la mayor cantidad de herramientas libres posible (una filosofía que mantengo hasta hoy), así que fue una excelente opción.
Además, se sentía como un editor “más inteligente”.
Visual Studio Code
Algunos meses después, ya en 2018, descubrí un nuevo editor que rápidamente llegó a mi laptop, entonces con Linux Mint instalado: Visual Studio Code.
VS Code superaba ampliamente, en capacidades técnicas, tanto a Sublime como a Atom. Era desarrollado por Microsoft, y aunque su código fuente estaba disponible públicamente, el binario oficial incluía componentes propietarios que no me terminaban de convencer. Aun así, era claramente el más avanzado.
Ofrecía una enorme cantidad de extensiones —muchas de ellas ya presentes en Atom— pero con un ecosistema más pulido y poderoso.
Lo que más me sorprendió fue una funcionalidad que en ese momento llamé “poder ir al origen de una función”, pero que hoy sé que es parte del LSP (Language Server Protocol).
Este protocolo, presente en muchos editores modernos, mejora drásticamente la experiencia de desarrollo. Algunas de sus funciones más útiles —y que seguramente ya usas— son:
- Encontrar todas las referencias de una entidad (variable, función, clase) en un proyecto.
- Saltar al origen de una entidad, incluso si se encuentra en otro archivo.
- Renombrar una entidad y aplicar el cambio en todo el código de forma automática.
Son herramientas esenciales para tareas de debugging y refactorización, dos actividades que realizamos constantemente como desarrolladores.
VS Code era bueno, rápido y extensible. Aunque no completamente libre, solía usar la versión compilada por la comunidad llamada VSCodium, que elimina los componentes privativos.
Todo parecía estar en orden. Había encontrado el editor. Hasta que un nuevo nombre comenzó a aparecer en los foros y artículos que consultaba habitualmente.
Vim
Vim es un editor de código basado en la terminal, conocido por ofrecer una productividad tan alta que muchos aseguran que, una vez que lo dominas, no hay vuelta atrás. ¿Sería cierto todo lo que decían? ¿O sería simplemente otro culto de internet como el que existe alrededor de Apple? Tenía que averiguarlo.
En 2020 intenté instalar Vim en mi laptop con Fedora Linux… y me llevé una sorpresa: ¡Vim ya venía instalado! De hecho, es muy común que esté preinstalado en la mayoría de distribuciones de Linux, debido a su utilidad en entornos de línea de comandos.
Escribí vim
en la terminal… y comenzó la aventura.
Lo primero que vi fue una pantalla donde no podía escribir. Tecleaba cosas y no pasaba nada. De pronto, al presionar alguna tecla —sin saber cuál— comencé a poder escribir. Algo extraño pasaba: esto no se sentía como ningún editor anterior.
Al poco tiempo entendí que necesitaba estudiar más a fondo cómo funcionaba esta herramienta. Quise cerrarla y, como el 99 % de quienes entran por primera vez a Vim, no supe cómo salir. Tuve que cerrar directamente la terminal.
Investigando, descubrí que Vim se basa en modos de operación, como normal, insert y visual. También aprendí sobre los famosos motions, combinaciones de teclas que permiten moverse rápidamente por el texto. Esta estructura me pareció muy interesante, y vislumbré desde entonces su enorme capacidad de personalización.
No pude usar Vim de manera productiva sino hasta tres meses después de empezar. Durante mi trabajo diario usaba VS Code (VSCodium), y por las tardes, en mis proyectos personales, usaba Vim.
Y entonces ocurrió: me volví adicto.
Estar 100 % en la terminal redujo mis distracciones. Todo mi flujo de trabajo comenzó a moverse a un solo lugar: el teclado. Vim no solo era minimalista y personalizable, sino también extremadamente divertido y potente. Y por si fuera poco: era 100 % open source.
Me sentía en el editor ideal… hasta que quise personalizar más profundamente, y me topé con VimScript.
VimScript es el lenguaje de configuración oficial de Vim, pero nunca me sentí cómodo con él. Era poco intuitivo y difícil de mantener. Entonces, nuevamente, los foros vinieron al rescate.
NeoVim
NeoVim es un fork de Vim que para muchos se ha convertido en su sucesor natural. Nació con el objetivo de modernizar el código base de Vim, mejorar el rendimiento y acelerar su evolución como herramienta.
Pero lo que más me atrajo de NeoVim fue su compatibilidad con Lua como lenguaje de configuración.
Lua es un lenguaje ligero, embebible y muy eficiente, ampliamente usado en entornos como IoT y videojuegos. La comunidad de NeoVim adoptó Lua como estándar para personalización, y eso cambió todo.
Lua me resultó mucho más intuitivo que VimScript. Además, lo que aprendía configurando mi editor podía aplicarlo en otros contextos, como scripts o aplicaciones reales.
Hoy en día, NeoVim es mi editor principal y único. Paso la mayoría de mi tiempo en la terminal, así que encaja perfectamente con mis hábitos. Cuando algo no funciona como quiero, simplemente edito mi configuración en Lua y lo adapto a mis necesidades.
Mantengo una lista de plugins relativamente minimalista. Entre los más importantes están:
- Lazy: Gestor de plugins escrito en Lua.
- Avante: Plugin que integra inteligencia artificial en mi flujo de trabajo, ofreciendo una experiencia similar a Cursor, pero sin salir de mi terminal.
- Blink Cmp: Autocompletado de código.
- Formatter: Formateador de código.
- Mason y nvim-lspconfig: Todo lo necesario para la configuración de LSP.
- Telescope: Potente buscador de archivos y contenido. Su interfaz es rápida y agradable.
También he probado otros editores como Zed (incluso hice un plugin para él) y Adobe Brackets, pero nunca llegaron a ser mis herramientas principales. Quedan como simples menciones honoríficas.
Y tú, ¿qué editor de código usas?
¿Has considerado probar algo nuevo?
Te leo en los comentarios.
Deja un comentario