Nota: Este post fue escrito en español, mi idioma nativo, a pesar de que el resto del sitio está escrito en inglés. Decidí dejarlo así por ahora.
Un mes de compromiso #
Durante las últimas semanas, y tal vez, de plano meses, me he encontrado en una espiral de constante cambio. Posiblemente sea el hecho de no tener un trabajo relacionado al desarrollo de software. Esto, tal vez, produce que el cambiar de herramientas y ambientes (Editores de texto y Sistemas Operativos) sea lo que mi cerebro piensa que es “mi trabajo”. Pero lo detesto. Porque se me escapan los días de las manos sin hacer trabajo real. Todos los días jugueteo con algún editor de texto, intento alguna configuración o hacer los ajustes que considero necesarios para por fin adoptar ese editor en cuestión y ponerme a trabajar de una buena vez. Incluso, a pesar de nunca haber sido propenso a hacer distro hopping, hace dos semanas formateé mi PC. Estuve cerca de eliminar mi partición de Linux y quedarme únicamente con Windows. Aunque terminé haciendo lo contrario. Eliminé Windows 11 (una basura), y limpié mi Arch Linux por Fedora 43. Pero el jugueteo entre editores y herramientas ha continuado.
Tengo que enfocarme en, por fin y de una vez, al menos durante un mes completo, elegir un solo set de herramientas y enfocarme en trabajar con ellas. Un mes es buen tiempo, debería ser suficiente para acostumbrarme bastante al funcionamiento general, al work flow, y a las posibles extensiones, plugins o funcionalidades adicionales. Al final del mes, podría revisar mis notas o evaluar mis sentimientos, y volver a plantearme, si es necesario, un cambio. Aunque espero que no lo sea, porque estaré corriendo el riesgo de volver a repetir todo. Aunque debo decir que verdaderamente es difícil elegir entre las opciones que tengo.
El objetivo final #
El flujo de trabajo que quisiera obtener, es un editor de texto eficaz, que me deje programar de manera eficaz en todos los lenguajes de programación que practico (C, C++, Rust, Go y Odin), utilizar sus Language Servers (LSPs). Y por otro lado, utilizar un software y un método de toma de notas cómodo y poderoso, y si es posible integrarlos ambos. Para esto último (es decir, tomar notas), los dos contendientes son únicamente Org-Mode + Org-Roam, y Obsidian (este último es lo que estoy utilizando para escribir esto).
Editores que no consideraré #
Quedarán fuera una buena cantidad de editores. Ya sea porque no me interesa la integración de agentes IA, porque los considero muy nuevos y “poco maduros” o irrelevantes, o por alguna otra razón. Por un momento he considerado estar abierto a nuevas sugerencias, pero creo que me arriesgaría a caer en aún mayor parálisis por análisis si un nuevo editor entrara a la contienda. Sin más preámbulos, listaré a continuación las opciones que tengo.
Vscode #
Alto contendiente y extremadamente popular. Creo que alrededor de un 75% de todos los programadores del mundo prefieren Vscode. Aunque, después de meses o años de utilizar Doom Emacs y NeoVim de manera alternada, se siente como traición o como rebajarme de nivel, pero debo admitir que la cosa funciona bien y es agradable a la vista. Además de que ese tipo de ideas (es decir, ideas de superioridad solo por utilizar un editor en específico), no aportan nada, y no debería dejarme llevar mucho por ellas. Aún así tienen cierto peso. Vscode tiene todo lo que uno necesita y tal vez hasta de más. Una parte de mí me insiste mucho que me decida por Vscode de una buena vez por todas y me concentre en trabajar. Por eso lo pongo al inicio de esta lista, aunque el orden no es necesariamente importante.
- Ventajas
- Tiene básicamente todo
- Es bonito
- Comunidad enorme, será muy fácil buscar y encontrar ayuda respecto a cualquier problema
- Navegación relativamente eficaz, como abrir un split de dos ventanas verticales
- El intellisense es bonito y tiene iconos
- Todos los LSP funcionan
- Integración con Vim motions funcionales
- Search Symbols in Project funcional
- Terminal integrada
- Fácil integración para trabajar con Git sin instalar nada
- Configuración completa de plugins y funcionalidades, así como keystrokes
- Desventajas
- Microsoft
- Electron, es básicamente una instancia de Chromium
- Software privativo (a menos que utilice Vscodium)
- Pesado. Alto consumo de ram, que incrementa conforme se trabaje con mayores codebases.
- A veces, tal vez más de lo que cualquiera quisiera admitir, se siente lento
- Tengo entendido que algunos usuarios sí llegan a experimentar crasheos
- Es de novatos
- No Org-Mode + Org-Roam. No Org-Agenda (hasta donde sé)
- No integración con Obsidian (hasta donde sé)
- A veces algunos keystrokes se sienten obtusos (como al llamar un task y después intentar cerrar la terminal)
- Ctrl + w no funciona para cerrar ventanas por alguna razón. Aunque seguramente esto es fácilmente corregible
- La navegación (abrir y/o manejar varios proyectos) se siente rara a veces
Emacs #
El Santo Grial. El editor de entre editores. He utilizado Emacs (En Doom Emacs) durante varios meses, tal vez un año o dos. Y es de lo mejor del mundo. Verdaderamente puedo decir que es este el editor de texto que más me gustaría adoptar y permanecer por siempre en él. Desgraciadamente, sí he identificado algunas desventajas recientemente. De hecho, han sido exactamente esas desventajas y pequeños “problemas” lo que me han llevado a estas largas semanas o meses de parálisis por análisis, de incertidumbre y estar brincando de editor en editor. Qué cosa tan molesta.
- Ventajas
- Software Libre y Abierto
- Extremadamente extensible y configurable por naturaleza
- Pocas cosas, o nada, superan a Emacs en cuanto a edición de texto
- Doom Emacs viene con una configuración extendida y sana. Batteries included
- En línea con el último punto, la integración de Vim motions es excelente, gracias a Evil-Mode.
- Todos los LSP funcionan de manera decente, aunque OLS (Odin) es un poco raro
- Search Symbols in Project funciona aunque fue extremadamente difícil de configurar, o me costó mucho trabajo aprender a habilitar/utilizar
- Org-Mode y Org-Agenda. Que es muy difícil de replicar en otro software
- Org-Roam. En conjunto con Org-Mode, lo que más me gustaría quedarme
- Literate programming. Que mi archivo de configuración sea un archivo en formato org es algo muy bonito
- Dired. Fácil navegación de archivos (Básicamente un file explorer integrado)
- Magit. No hay nada como Magit. Lo mejor para manejar Git
- Manejo y navegación muy eficaz de buffers y ventanas
- Simple ejecución de comandos con Compile Command. Básicamente ejecutar cualquier comando de linux en el buffer actual
- Integración de algunos lenguajes con los llamados major modes. Como por ejemplo en Rust-Mode, además de los Compile Command, puedo utilizar un keystroke para compilar el proyecto o ejecutar tests
- Gusto de saber que estoy utilizando uno de los editores más avanzados, más difíciles de utilizar, y más legendarios de la historia
- Cliente IRC integrado
- Reproductor de música integrado y entre otras miles de chingaderas que no necesariamente utilizaré
- Desventajas
- Definitivamente se está volviendo un poco lento
- Definitiva sensación de algo anticuado
- Los LSP funcionan, pero a veces se sienten obtusos y la estética de estos definitivamente no es moderna
- El LSP de Odin definitivamente se siente un poco incompleto
- Configurar Emacs definitivamente puede llegar a ser un dolor de cabeza. De hecho, muchas cosas relacionadas a la configuración, definitivamente no las domino o no las podría configurar por mi propia cuenta. Y si no fuera por Doom Emacs, posiblemente no sería capaz de utilizar Emacs en absoluto
- Org-mode, org-agenda y Org-Roam no tienen una verdadera manera eficaz de visualizarse y editar en móvil, ni en iPhone ni en Android. Hay varias opciones, pero ninguna funciona de manera óptima. Todas se sienten incompletas. Lo que definitivamente te tiene atado a trabajar en tus notas exclusivamente en la PC. Los hechiceros eruditos usuarios de Emacs de los 80’s y 90’s, siempre aceptaron esta realidad? Supongo que siempre estuvieron a gusto con esto, puesto que en esa época no existían los teléfonos inteligentes. Ni siquiera se tenían que preocupar respecto a esto.
- A pesar de ser una comunidad aún muy grande, definitivamente se está reduciendo
- Vivo con miedo de que, si lo continúo utilizando y un día consigo un empleo de verdad, se me pida utilizar alguna herramienta que no sea compatible con Emacs. Y me haga ver como “el rarito que utiliza Emacs”
- Mala compatibilidad con Obsidian (si es que quisiera tomar el camino de no utilizar Org-Mode + Org-Roam y tratar de irme del lado de Obsidian pero quedándome en Emacs)
NeoVim #
Utilicé Vim por varios años durante mi carrera, en la Universidad. Después adopté NeoVim en algún punto que no recuerdo. Aunque sí recuerdo que no me tomó el esfuerzo sobre-humano que muchas personas dicen que se necesita. Al contrario, creo que lo adopté (al menos Vim con una configuración relativamente sencilla) de manera placentera. Después utilicé NeoVim y he estado aprendiendo cosas, aunque no me he mantenido constantemente como un usuario fiel de NeoVim.
- Ventajas
- Legendario (por ser una evolución de Vim)
- Software Libre y Abierto
- Satisfacción de utilizar, al igual que Emacs, un software legendario
- Satisfacción de poder decir “I use NeoVim, by the way” (el famoso meme)
- Muy ligero y con bajo consumo de ram
- Gran comunidad que aporta muchísimo. Encontrar información o ayuda es fácil
- Constantemente en evolución
- Extremadamente configurable y extensible por medio de plugins
- Vim-Motions excelentes, por defecto (duh)
- Todos los LSP funcionan bien. Aunque puede llegar a ser un dolor habilitarlos y/o configurarlos
- Search Symbols in Project funciona bien. Aunque igual me costó mucho aprender a habilitarlo o utilizarlo
- Intellisense y otras funcionalidades se ven bien y estéticas
- Posible buena integración, o al menos prometedora, con Obsidian con el plugin obsidian.nvim (aún no lo he probado en realidad)
- Posible integración decente con Org-Mode y Org-Agenda, por medio de varias opciones de plugins. Aunque no todos están muy “pulidos”, y aunque se mantiene la dificultad de utilizar (visualizar o editar) éstos desde un teléfono
- Desventajas
- Constantemente en evolución. Puede ser complicado mantenerse actualizado de la información necesaria para ser un buen usuario
- Aprender todos los atajos y/o keystrokes puede tomar años y años de uso
- Todo lo que no sea edición básica de texto, necesita una configuración y en ocasiones, un plugin. Olvídate de hacer doble click y comenzar a trabajar
- No hay literate programming (que yo sepa). Posiblemente hay un plugin, pero desconozco. Definitivamente no es funcionalidad nativa
- Los archivos de configuración son simplemente archivos lua. Puede hacerse con organización, pero en mi opinión, definitivamente no es bonito.
- Para tener algo parecido a los Compile Commands de Emacs, o los tasks de Vscode, tuve que utilizar un plugin: Overseer.nvim. Funciona bien y es bonito, pero requirió configuración y al principio no entendía nada
- Para tener algo parecido a Magit, o un gestor de git, será necesario algún plugin (aunque seguramente hay varios)
- Creo que, para utilizar una terminal, igual tendré que instalar y configurar un plugin y ciertos keystrokes
- La configuración puede llegar a ser un gran problema. Es necesario tener un conocimiento decente de Lua (el cuál no tengo justo ahora). Básicamente toda la configuración se realiza programando en Lua. Hasta la manera de configurar Doom Emacs (en Emacs Lisp) se siente más accesible
- Como se mencionó en las ventajas, es posible cierta integración con Org-Mode y Org-Agenda. Pero no es perfecta, menos aún si metemos Org-Roam en la ecuación. Las soluciones no están pulidas y puede ser un poco obtuso.
- Vivo con miedo de que, si lo continúo utilizando y un día consigo un empleo de verdad, se me pida utilizar alguna herramienta que no sea compatible con NeoVim (poco probable). Y me haga ver como “el rarito que utiliza NeoVim”
Sublime Text #
Sublime Text es un editor de texto veterano en la industria. No tan viejo como Vim/NeoVim ni mucho menos Emacs. Pero sí ha sobrevivido al paso del tiempo en la siempre cambiante industria del desarrollo de software. En el 2026, Sublime Text lleva cierto aire de “abandono”, pero no está abandonado. Tal vez se podría decir que su desarrollo es lento y consciente. Yo pensaba que era una pieza del pasado que había muerto, como Atom. Pero no, sigue vivo y recibiendo actualizaciones. El interés por la posibilidad de utilizar Sublime Text vino a partir de conocer el lenguaje de programación [[Odin Programming Language|Odin]], y ver cómo su creador, Ginger Bill, y otros usuarios de Odin, lo prefieren por algunas de sus características, principalmente la funcionalidad de agregar directorios al proyecto actual y hacer Search Symbols in Project.
- Ventajas
- Ligero y extremadamente rápido. Rápido arranque
- No electron, no basura webapp
- Renderizado por GPU. Resultando en una UI fluida, utilizando menos recursos del sistema.
- Interfaz estética, muy sobria y limpia. Casi parece de una época que se ha estado olvidando
- Configuración mediante archivos JSON
- El rey (por así decirlo) del Search Symbols in Project (una vez configurado el LSP)
- Todos los LSP funcionan
- Hay un buen plugin para habilitar Vim Motions
- Muy buen funcionamiento de múltiples ventanas o paneles y navegación entre ellas
- Selecciones múltiples (o múltiples cursores). Esto se puede hacer en otros editores pero se siente bastante “nativo” en Sublime Text
- Desventajas
- Software privativo y cerrado
- Definitivamente se siente un poco viejo y/o anticuado
- Todos los LSP funcionan. Aunque se pueden llegar a sentir raros u obtusos
- Cosas como el intellisense y otra funcionalidades del LSP, no son muy bonitas o estéticas, como falta de íconos, por mencionar un ejemplo. Posible cuestión de gustos
- Podría ser solamente yo, pero pareciera ser que los LSP requieren un poco más de configuración que en otros editores, pero dando resultados no tan comparables
- Aún no entiendo muy bien la manera en que trabaja, es decir, en cuanto a los proyectos. Utiliza algo como un archivo .sublime-project. No lo domino aún. Es raro
- Sin integración alguna con Git. Para eso, se tiene que utilizar Sublime Merge, del mismo estudio de desarrolladores
- Hay un buen plugin para habilitar Vim Motions, pero en ocasiones anteriores que lo he probado, se ha sentido un poco obtuso o que colisiona con otras teclas o keystrokes. Cosa que no he notado casi en absoluto en ningún otro editor
- Posiblemente no hay integración con Org-Mode + Org-Roam. Hay un plugin pero nunca lo pude hacer funcionar
- Posiblemente no hay integración con Obsidian. Aunque es claro que la ventaja de utilizar Obsidian es que este funciona con simples archivos en formato Markdown
Tengo que tomar una decisión hoy. Y no tengo idea aún.
Por los siguientes 30 días, escribiré código únicamente en NeoVim y tomaré notas en Obsidian, o en NeoVim con el plugin obsidian.nvim. No haré más editor/distro hopping. Si algo me molesta, lo anotaré en esta nota y lo corregiré sobre la marcha si es elemental o me impide continuar. Si es secundario, lo arreglaré después de los 30 días, o viviré con ello.
Sin excusas, no más “sólo intentaré rápidamente Zed”. No volveré a formatear mis máquinas.
No estoy eligiendo solamente herramientas. Estoy eligiendo decidir dejar de desperdiciar días y comenzar a construir algo real.