Publi

Aprende a utilizar Emacs. Abre tu mente, desdobla tus dedos, trabaja a gusto y sé productivo

Finger Twister. Emacs, y tus dedosMi historia con Emacs se remonta a 2005, momento en que yo pasaba una crisis de editor de texto. Llevaba varios años buscando un editor de texto que se ajustara a mis necesidades. Primero para Windows, donde me tiré años probando editores que venían en CDs de revistas, tanto libres, gratis o shareware. Hasta entonces había trabajado con varios IDEs y editores, pero estaban orientados a un lenguaje determinado, eran poco personalizables o no eran todo lo cómodos que a mi me gustaría (eso de, el editor A me gusta, y el editor B no, pero si A tuviera una cosilla que tiene B que está muy bien…)

La elección de un editor de texto es algo muy personal de cualquier desarrollador (o aspirante a serlo) y, ya que es una herramienta con la que va a echar muchas horas, es imprescindible sentirse cómodo y productivo y, a ser posible, contar con herramientas que eviten tener que estar cambiando de aplicación y tener que recargar archivos en varios sitios, cosa que al final puede jugarnos malas pasadas.

Conociendo Emacs

Aunque Emacs lo había abierto antes, en mis deslices iniciales con GNU/Linux, era un programa que me asustaba un poco. Tenía un logotipo horrible y me resultaba excesivamente feo y poco útil. Lo había abierto alguna que otra vez por accidente y, aunque había intentado usarlo un poco, terminaba desistiendo y cerrándolo y hasta desinstalándolo preguntándome por qué se me instalaba automáticamente con el sistema operativo.

Fue un compañero de Universidad el que me hizo darle otra oportunidad, me pasó un fichero de configuración donde le cambiaba el tema y me comentó algunos atajos de teclado básicos. Así que decidí darle otra oportunidad. Me gustó bastante el hecho de que casi no hay que utilizar el ratón, en realidad sin el casi, no hay que utilizarlo, aunque algunas veces puede que sea más rápido e intuitivo utilizarlo, pero tenemos la posibilidad de no hacerlo, hay teclas para todo, y cuando no hay tecla o no te acuerdas, tienes un comando. Además, puedes configurar el anidado o indentación como quieras, de acuerdo al proyecto en el que estés y existe coloreado de sintaxis para casi cualquier lenguaje de programación.

He de decir que la curva de aprendizaje no es muy rápida, de hecho al principio cuesta un poco, y necesitas tiempo, leer mucha documentación, probar configuraciones y extensiones, cabrearte y borrar toda la configuración y volver a empezar y quedarte con la sensación de no saber si es frustrante o divertido. De hecho, creo que si tuviera que empezar a utilizarlo ahora, no lo usaría. Me he vuelto impaciente y siempre ando demasiado ocupado y creo que actualmente tenemos muchas opciones. Pero me encanta Emacs, a menudo descubro nuevas posibilidades y opciones que me hacen la vida más fácil. También descubro alguna que otra pega, pero al final compensa.

Iniciándose en la configuración

Si finalmente decides probar Emacs o quieres crear una nueva configuración y personalizar el entorno a fondo mi consejo es probar alguna de las configuraciones que muchos usuarios publican en GitHub. Os dejo algunos ejemplos:

Por supuesto hay muchos más. Éstos son sólo algunos que me ha gustado revisar. O, al menos, me ha parecido que tienen algunas cosas curiosas. Y, claro, a la hora de crear nuestras configuraciones, está muy bien copiarnos de ellos, porque seguro que tienen cosas muy chulas.

Matizando nuestra configuración


Una de las cosas muy buenas (y muy malas) de este editor, es que todo se programa. Es decir, tanto los ficheros de configuración, como las extensiones están programados en Emacs Lisp. Por un lado está muy bien porque tendremos la potencia necesaria para añadir y cambiar las funcionalidades que queramos, aunque por otro lado, haya que ponerse a programar y sea complicado. Bueno, más que complicado es que da una pereza enorme ponerse, porque no es perderse en una ventana de botones, checkboxes y demás. Ni es editar un archivo tipo INI con claves y valores. La ventaja es que en Emacs, la configuración no tiene límite: podemos definir valores, por supuesto, decir si activamos o desactivamos una característica; pero también podemos definir los comportamientos de todas las teclas y combinaciones de teclas que se pulsen (incluso botones de ratón), podemos añadir lógica a algunas acciones y eso nos permite perfilar muchas cosas y adaptar algunas características que no nos gustan del todo para que nos convenzan un poco más. Por ejemplo, podemos asignar una tecla para recargar un fichero y modificar la acción para que no nos pida confirmación (¿estás seguro de que quieres recargar…?), o incluso programar la ejecución de cualquier programa externo ante cualquier evento.
Por si fuera poco, encuentras para Emacs, miles de extensiones para todo lo que te puedas imaginar, anotaciones, lenguajes, temas, juegos, IRC, correo electrónico, gestión del entorno, autocompletar, cifrado, información meteorológica, navegación por Internet, blogging, portapapeles, menús, finanzas, matemáticas, búsquedas, conexiones con servidores, control del entorno de ventanas, control de reproducción multimedia, lectura de pantalla, interacción con bases de datos, interacción con repositorios de código, compiladores, y miles de cosas más.

Ficheros de configuración

Emacs, una de las primeras cosas que hace nada más arrancar es leer los ficheros de configuración, que pueden estar en varios sitios. Si tenemos poca cosa, podemos meterlo todo en ~/.emacs (fichero oculto dentro de nuestro HOME). Aunque desde la versión 22, si no se encuentra dicho archivo se cargará ~/.emacs.d/init.el. Y dentro de ~/.emacs.d podemos meter todos los archivos que queramos para la configuración, separar los módulos a nuestro gusto y complicar el asunto hasta el infinito y más allá.
La configuración separada es muy útil si cargamos muchas extensiones y tenemos que configurarlas todas, además tenemos configuraciones específicas para cada lenguaje de programación que solemos utilizar y tenemos además ciertas funciones propias. Asimismo en dicho directorio se almacena información sobre abreviaturas, documentos recientes, disposiciones de ventanas, cachés, información temporal y módulos; por si fuera poco, Emacs aprovecha y compila muchos de los ficheros de los módulos para poder cargarlos antes y hacer nuestra experiencia de usuario más fluida.

Creando nuestra configuración personal

En el siguiente post veremos un ejemplo de la configuración real que me he montado para mi Emacs, aunque aquí veremos una pequeña introducción. A pesar de que Emacs realmente no está limitado a ningún lenguaje de programación porque gracias a sus extensiones podemos hacer que soporte múltiples lenguajes, cuando vamos a crear nuestra configuración debemos pensar en los lenguajes que vamos a utilizar más a menudo. Aunque siempre podemos coger e instalar un modo nuevo para cualquier lenguaje, al menos para colorear el código y controlar el anidado, tal vez nos interese, para nuestro trabajo diario configurar el autocompletado, revisión de sintaxis o revisar la configuración específica de algún modo para tenerlo todo a nuestro gusto.
Luego tenemos que preguntarnos qué nos gustaría tener en nuestro editor: números de línea, plegado de código, textos predefinidos, herramientas predictivas, etc. Aunque seguro que en el siguiente post veremos un montón de cosas que tal vez no sabías que necesitabas, pero en cuanto las ves sabes que las necesitas. A mí me ha pasado, llevo mucho tiempo elaborando una nueva configuración y buscando información sobre muchas extensiones.

Múltiples configuraciones

Emacs, normalmente soporta una sola configuración por usuario, por lo que resulta muy difícil utilizar Emacs para trabajar y cuando termina la jornada laboral, para crear una nueva configuración. O simplemente para probar configuraciones de otras personas para ver cuál es la que más se ajusta a nosotros. Aunque podemos aprovechar la flexibilidad que tiene Emacs para crear un script de configuración muy sencillo que sea capaz de cargar la configuración desde un directorio especificado. Para ello, editamos ~/.emacs e introducimos lo siguiente:

1
2
3
4
5
6
(defvar user-custom-dir (getenv "EMACS_USER_DIR"))

(when (/= (length user-custom-dir) 0)
  (setq user-emacs-directory (file-name-as-directory user-custom-dir)))

(load (expand-file-name "init.el" user-emacs-directory))

Con esto leeremos la variable de entorno EMACS_USER_DIR antes de cargar la configuración y cambiaremos .emacs.d por dicho valor. Seguidamente, cargaremos el archivo init.el situado en dicho directorio. Así que podremos ejecutar Emacs de la siguiente forma:

EMACS_USER_DIR=~/.emacs.d_new/ emacs

Y se cargará la configuración dentro del directorio .emacs.d_new. Eso sí, tenemos que tener cuidado, los ficheros de configuración deberán referirse al directorio de comunicación como user-emacs-directory ya que si lo hacen como ~/.emacs.d/ como suele ser costumbre puede que se carguen cosas que no deben.

Referencia, para ir abriendo boca

Si quieres ponerte a leer un rato y ver material sobre Emacs, aquí te dejo algunos enlaces:

También podría interesarte....

There are 29 comments left Ir a comentario

  1. Pingback: Aprende a utilizar Emacs. Abre tu mente, desdobla tus dedos, trabaja a gusto y sé productivo | PlanetaLibre /

  2. victorhck /
    Usando Mozilla Firefox Mozilla Firefox 52.0 en Linux Linux

    Siempre me he propuesto darle una oportunidad… pero siempre regresaba a un editor con interfaz gráfica, en concreto Kate de KDE.

    Supongo que es cuestión de no rendirse y de probarlo y probarlo… quizás algún día! 🙂

    Me gustó! Saludos.

    1. nasciiboy /
      Usando Mozilla Firefox Mozilla Firefox 55.0 en Fedora Linux Fedora Linux

      la prueba de fuego con emacs es su tutorial (Ctrl-h t) si la pasas y te gusta, ya estas dentro, luego cambias el tema, el teclado, todo tu flujo de trabajo y cuando te detienes a observar sus efectos, emacs acapara casi todo lo que haces

      1. Gaspar Fernández / Post Author
        Usando Mozilla Firefox Mozilla Firefox 55.0 en Ubuntu Linux Ubuntu Linux

        Totalmente de acuerdo contigo. Encima puedes hacer un editor tan ligero o tan pesado como quieras, será por opciones… y encima si te gusta que te sorprendan casi todos los días con algo nuevo, seguro que lo descubres 🙂

    2. Gaspar Fernández / Post Author
      Usando Mozilla Firefox Mozilla Firefox 55.0 en Ubuntu Linux Ubuntu Linux

      Bueno, Emacs tiene interfaz gráfica, y menús, y botones y cosas así. Es verdad que si quieres se maneja todo desde el buffer y el minibuffer, pero mira, hasta puedes tener las imágenes en miniatura de un directorio… https://poesiabinaria.net/other/img/emacs_imagenes.jpg

  3. Quijote Libre /
    Usando Mozilla Firefox Mozilla Firefox 52.0 en Linux Linux

    Poesía me ha parecido esta entrada, me ha encantado,.
    Cuanto más conozco Emacs más me gusta y desde luego una nueva serie, en castellano, siempre es bienvenida, que de esto siempre hay que aprender.
    Te diría que si vas a realizar una serie al respecto, te pongas en contacto con el administrador de http://planet.emacs-es.org/, si es que no la hecho el ya contigo ya que sería muy útil apareciesen ahí tus entradas.
    Por mi parte sólo decirte que desde hace un par de semanas este es mi sueño: http://www.howardism.org/Technical/Emacs/new-window-manager.html
    Un saludo, ¡cuentas con un seguidor!.

    1. Gaspar Fernández / Post Author
      Usando Mozilla Firefox Mozilla Firefox 55.0 en Ubuntu Linux Ubuntu Linux

      ¡Perdona por tardar en aceptarte el comentario! Normalmente se aceptan solos, aunque tal vez por incluir dos enlaces, WordPress ha pensado que tendría que aprobarlo.

      Gracias por decirme lo del planet, acabo de enviarles un e-mail a ver si me aceptan. Por lo del Window Manager… está muy chulo, aunque con los años me he vuelto muy cómodo y mi KDE Plasma, me sería muy difícil de abandonar 🙂 jejeje

      Muchas gracias por tu comentario !! Un abrazo!

  4. Pingback: Creando una configuración personalizada para Emacs. Mi .emacs.d con explicaciones detalladas (I – Configuración general) – Poesía Binaria /

  5. joe /
    Usando W3M 0.5.3

    Sin desmerecer el artículo, podria indicar usted su edad?

  6. Angel17 /
    Usando Google Chrome Google Chrome 108.0.0.0 en Windows Windows NT

    I enjoy reading this post. Keep sharing! Fence Installation Spring Hill, FL

  7. Anya /
    Usando Google Chrome Google Chrome 109.0.0.0 en Windows Windows NT

    I simply wanted to write down a quick word to say thanks to you for those wonderful tips and hints you are showing on this site. https://www.insulationvancouver.ca/

  8. Gabriela E. Hammond /
    Usando Google Chrome Google Chrome 109.0.0.0 en Windows Windows NT

    Thank you for your valuable and amazing post it may help to everyone. for more information You can visit my these all website. unitedsoftware.org

  9. Michele Sullivan /
    Usando Google Chrome Google Chrome 111.0.0.0 en Windows Windows NT

    Estoy tan intrigado con este sitio web y, sin saberlo, hice clic en este hilo y fue interesante. Disculpe por cambiar el tema, pero si desea sell my house fast dallas tx, visite el enlace incluido en este mensaje.

  10. Gabriela E. Hammond /
    Usando Google Chrome Google Chrome 110.0.0.0 en Windows Windows NT

    Nice article! thanks for sharing the post! Wood chipper

  11. Mike Rooney /
    Usando Google Chrome Google Chrome 114.0.0.0 en Windows Windows NT

    I found this post very exciting. I am also sending it to my friends to enjoy this blog. Green Jacket Vegeta

  12. L. Martin /
    Usando Google Chrome Google Chrome 114.0.0.0 en Windows Windows NT

    I do enjoy the manner in which you have framed this specific issue and it really does provide me some fodder for consideration.
    electricians ellenton

  13. OKBet /
    Usando Google Chrome Google Chrome 114.0.0.0 en Windows Windows NT

    A very awesome blog post. We are really grateful for your blog post. You will find a lot of approaches after visiting your post.
    World Championship

  14. Paul /
    Usando Google Chrome Google Chrome 116.0.0.0 en Windows Windows NT

    It’s an inspiring narrative for those who are navigating their own choices in the world of text editors. | https://www.drywallgreensboro.com

  15. pool enclosure /
    Usando Google Chrome Google Chrome 145.0.0.0 en Windows Windows NT

    Excelente guía, muy completa y motivadora para empezar a personalizar Emacs y aprovechar todo su potencial. pool enclosure

  16. sosmom /
    Usando Google Chrome Google Chrome 145.0.0.0 en Windows Windows NT

    Choosing the right financial service provider is arguably the most important decision in any financial transaction.
    The provider you select will determine the quality of service, the fairness of terms, and your overall experience.
    When looking for a reliable 카드깡 업체 several key criteria should guide your evaluation process.
    First and foremost, verify that the provider operates legitimately and has proper business registrations.
    This basic check eliminates a significant portion of unreliable operators from your consideration set.
    Next, examine the fee structure in detail to ensure there are no hidden charges or misleading pricing.
    A reputable provider will present all costs clearly and will not pressure you into making hasty decisions.
    Customer reviews and testimonials offer real-world insights that complement the information provided by the company itself.
    Pay attention to patterns in reviews rather than individual outliers to get the most accurate assessment.
    Consistent praise for transparency, speed, and customer support is a very positive sign.
    Conversely, recurring complaints about hidden fees, poor communication, or unresponsive support are serious warning signals.
    The quality of customer support is particularly important because issues can arise at any stage of the process.
    Having access to knowledgeable and responsive support staff can make the difference between a smooth experience and a frustrating one.
    Consider reaching out to the provider with questions before committing to evaluate their communication style and helpfulness.
    This preliminary interaction serves as a practical test of what you can expect as a customer.
    Ultimately, the best provider is one that combines competitive pricing with excellent service and complete transparency.
    Investing time in finding this ideal match pays dividends in the form of a stress-free and financially sound experience.

  17. bronz /
    Usando Google Chrome Google Chrome 145.0.0.0 en Windows Windows NT

    Micropayment cashing can sometimes appear to be a possible option
    when urgent funds are required.
    However, proceeding without sufficient information
    may lead to additional financial burden.
    Fee structures and processing methods
    can vary depending on the provider,
    so careful comparison beforehand is important.
    Through reliable information sources, review the conditions of micropayment cashing
    and choose the option that best fits your situation.
    Excessive or rushed micropayment cashing
    may also affect your credit management.
    Instead of focusing only on short-term solutions,
    establish an overall financial plan first.
    Careful judgment is necessary.
    소액결제현금화 정보센터

  18. takoyaki /
    Usando Google Chrome Google Chrome 145.0.0.0 en Windows Windows NT

    The way funds are used can vary depending on individual circumstances.
    Making decisions based only on speed can be risky.
    Check the differences in conditions between providers.
    Sufficient consultation is important.
    Information is the key when dealing with credit card cashing services.
    https://cardcash.imweb.me/

  19. darksite /
    Usando Google Chrome Google Chrome 145.0.0.0 en Windows Windows NT

    When reviewing information, it is important to consider both the source and how the content is structured.
    User-focused explanations help improve understanding.
    Clear comparison factors allow for more rational decisions.
    A comprehensive review of multiple criteria is recommended.
    레플리카

  20. coma /
    Usando Google Chrome Google Chrome 145.0.0.0 en Windows Windows NT

    Choosing without proper information can increase financial burden.
    It is necessary to compare different conditions carefully.
    카드깡 업체

  21. gangnamking /
    Usando Google Chrome Google Chrome 145.0.0.0 en Windows Windows NT

    강남 가라오케는 다양한 목적의 방문이 이루어지는 공간입니다.
    회식이나 소규모 모임 장소로도 언급되는 경우가 많습니다.
    공간 구성과 응대 방식이 만족도에 큰 영향을 줍니다.
    단순 후기보다 구조적인 정보가 도움이 됩니다.
    비교 기준을 세워두는 것이 좋습니다.

  22. igivtoyou /
    Usando Google Chrome Google Chrome 145.0.0.0 en Windows Windows NT

    Organizing conditions reduces mistakes during purchase. 상품권 구매
    Confirm whether the discount rate is fixed or variable.
    Check for additional costs related to payment methods.
    Verify whether issuance is immediate or delayed.
    Review usage limits, validity period, and restrictions.
    Clear refund and cancellation policies support comparison.
    Multiple exception clauses may increase total cost.
    Ensure consultation responses are specific.
    Verify inquiry channel operating hours.
    Review personal data request scope carefully.
    Confirm procedures for handling post-purchase issues.
    Compare providers under the same standards.
    Keep records for reference.
    Start with a small purchase if new.
    Proceed after thorough comparison.

  23. trend /
    Usando Google Chrome Google Chrome 145.0.0.0 en Windows Windows NT

    Managing your finances can be stressful, especially when unexpected costs arise.
    That’s exactly why bank.clickn.co.kr exists — to make things easier.
    With a streamlined process and an experienced team, accessing cash has never been simpler.
    All transactions are handled with full security and complete discretion.
    Your financial solution is ready and waiting — just one click away.

  24. bronz /
    Usando Google Chrome Google Chrome 145.0.0.0 en Windows Windows NT

    The demand for fast cash solutions continues to grow as economic uncertainty affects more households across the country.
    Many people find themselves in situations where conventional lending is either too slow or simply not accessible to them.
    In these moments, alternative options like credit card cash conversion become attractive despite the risks involved.
    The key to navigating this space safely is having access to accurate, unbiased, and well-organized information.
    Misinformation and misleading marketing are widespread in this sector, making independent research more important than ever.
    A comprehensive neutral guide that covers the full spectrum of this topic can be found at https://cardcenter.imweb.me/.
    The site outlines the main categories of card cash conversion, from official card loans to informal methods, with honest assessments of each.
    Understanding the fee breakdown, legal status, and risk level of each method is essential before engaging with any provider.
    Consumers who take the time to read thoroughly are far less likely to fall victim to scams or unexpected financial consequences.
    Whether you are exploring this topic out of curiosity or genuine need, the information available can help you make a smarter choice.
    Knowledge, preparation, and a cautious approach are the three pillars of making a safe decision in this complex financial landscape.

  25. dreamgift /
    Usando Google Chrome Google Chrome 145.0.0.0 en Windows Windows NT

    Your thoughts on the evolution of https://cardcashing.isweb.co.kr/%EC%8B%A0%EC%9A%A9%EC%B9%B4%EB%93%9C%ED%98%84%EA%B8%88%ED%99%94%EB%B0%A9%EB%B2%95 as a modern financial tool really resonated with me. By removing bureaucratic red tape, these professional services offer a practical alternative to the slow-moving processes of traditional institutions.

Leave a Reply to dreamgift Cancle Reply