¿Conocen VI o VIM, ese editor de texto de consola que genera amor/odio entre los programadores?
Bueno, hace un tiempo comenze a seguir un tutorial online(nada de video, puro texto) para escribir un editor de texto en C que sea similar a VI.
El tutorial te desafia a escribir todo el editor, interactuando con la consola, usando atajos de teclado y llamado los espacios de caracteres en linea en menos de 1024 lineas de codigo(en C, si… en C <3)
En este tutorial te explican como escribir un editor llamado “Kilo” y compilarlo/ejecutarlo en Linux, usando GCC.
¿Donde puedo leer el tutorial?
aca…
https://viewsourcecode.org/snaptoken/kilo/

La experiencia de codear un editor de texto en C
Si bien, en mi primer año de facultad en la tecnicatura en programación, el primer lenguaje que vi fue C, en esos 4 meses no consegui el nivel necesario para escribir un editor de texto completo que emule a VI, y si bien, logre armar un CRUD en C y que guardara datos… leer archivos, editarlos, guardarlos, sobre-escribirlos es una historia diferente.
Como siempre, buscando tutoriales o guias para armar pequeños proyectos para mejorar como programador, me encontre con el tutorial que deje más arriba y no tarde mas que unos minutos en comprender que mi conocimiento de C para crear el editor de texto que promete el tutorial estaba bastante por debajo del necesario, sin embargo en lugar de “asustarme” no saber, me parecio genial.
Tenia la oportunidad de aprender más C, un lenguaje que me encanta y con el tiempo se ha vuelto uno de mis favoritos junto a Python y C++ y de paso terminar con un pequeño proyecto que me gusta y podia darle utilidad.

Si bien, el código del editor completo puede encontrarse en Github, la gracia es seguir el tutorial y aprender paso a paso como funciona un editor de texto en consola y como escribirlo en C.
No voy a negar que al principio me costo, ya que el editor usa librerias que no conocia y por ejemplo, acceder al “modo crudo” del SO o “raw_mode()” para que la consola no responda en comandos y poder levantar una aplicacion que tome texto desde el input del teclado, fue algo que me costo entender al principio.
Asi como también crear un pipe para que mi aplicación lea archivos y los ejecute dentro del editor.
A eso le sumamos los bugs que aparecian en la compilación al ejecutar GCC y no puedo negar que fue una experiencia muy divertida y desafiante.
Me llevo casi dos semanas completas seguir el tutorial(contando que lo hacia en tiempo fuera del horario laboral y descanse los fines de semana)
Por eso, les dejo unos tips que pueden serles utiles en caso de querer escribir su propio editor de texto, siguiendo el tutorial que colgue más arriba.
Tips para codear Texty
- Asegurate de tener instaladas las librerias que vas a llamar previo a la función main(sino se complica la compilar)
- Es posible escribirlo sobre Windows, explica el tutorial que deje más arriba, sin embargo recomiendo usar Linux, ya que compilar desde la consola es más simple.
- Tener a mano una tabla ASCII(por si las moscas)
- Algun conocimiento de como usar una consola de comandos, para abrir los ficheros.
- Si bien el tutorial primero nos hace escribir la función de “texto crudo” desde el periferico(teclado), me parecio mucho más simple escribir el manejador de librerias previo y luego construir desde ahi.
- Aplica buenas practicas, ya que el codigo es de un tamaño mediano y puede tornarse confuso en algunas partes.
- ¡Disfruta codeandolo! 🙂

¡Hasta aca llego con el primer articulo del año!
¿El codigo de Texty? se los dejo en este repo 🙂
https://github.com/jpromanonet/textEditor_In_C
Si tenes dudas, dejame un comentario(respondo… tarde pero respondo).
¡Hasta la proxima!
Excellent pieces. Keep posting such kind of info
on your blog. Im really impressed by it.
Hey there, You’ve done a fantastic job. I will definitely digg it and in my
view suggest to my friends. I’m sure they will be benefited
from this website.