Hace un tiempo ya que publique un articulo para empezar a usar Vim, en esta entrada y gracias a Jonathan Sandoval puedo tomar un articulo de su blog y adaptarlo para así traer ante ustedes una nueva herramienta, Emacs.
¿Qué es Emacs?
La GNU define a emacs como el editor extensible y [altamente] personalizable. Esta descripción podría perfectamente aplicarse a muchos otros editores si es que no se conoce de emacs, o nunca se ha trabajado en él.
Comenzaré por mencionar que Emacs fue desarrollador por Richard Stallman, un desarrollador de C y de Lisp, que llegó a ser usuario de máquinas Lisp, y emacs, en esencia, es una máquina virtual de Lisp enfocada a la implementación de un potente editor. Emacs es, por tanto, extensible en Emacs Lisp. La naturaleza altamente dinámica de [Emacs] Lisp, le permite modificar (y por tanto, personalizar) virtualmente cualquier parte Lisp. Esto lo diferencia de otros editores que, a pesar de poderse extender a través de otros lenguajes de programación, lo permiten de una manera muy limitada a lo que puede llegar a permitir emacs.
Si en su tutorial de Vim, Oscar llama a este editor un “cañón de neutrones” (lo que sea que esto quiera decir), Emacs vendría a ser algo así como la “piedra filosofal” de los editores de texto (manteniendo la proporción de las metáforas ;)).
Funcionalidades
Veamos entonces, qué se puede realizar con GNU Emacs:
- Corrector ortográfico (hace uso del que venga instalado en el sistema, aspell o hunspell por ejemplo).
- Autocompletado de texto.
- Múltiples archivos pueden ser visibles al tiempo, dividiendo el marco de trabajo.
- Resaltado de sintaxis, dependiendo del lenguaje de programación que se utilice.
- Deshacer, “rehacer” (para emacs, rehacer es una forma de “deshacer”. Esto es bastante poderoso, aunque sea diferente a los demás editores).
- Emacs soporta una cantidad impresionante de lenguajes de programación y modos de resaltado.
- En su administrador de paquetes (SI, emacs tiene un administrador de paquetes al más puro estilo de apt-get o yum) es posible encontrar sintaxis tan exóticas como las de los archivos de configuración de Asterisk.
- Extensible en Emacs Lisp. (Hay proyectos como Pymacs que permiten que emacs pueda ser extensible en Python).
- Completado de comandos, palabras y uris de archivos. (Es posible instalar complementes como Ido y Helm, los cuales pueden funcionar juntos, que a su vez expanden enormemente las capacidades de autocompletado y búsqueda de emacs).
- Compresión y descompresión de ficheros a la hora de ser editados. Puede también trabajar con ficheros cifrados a través de gpg. Soporte para múltiples codificaciones de ficheros, y conversión entre los mismos.
- Historial de comandos ejecutados recientemente.
- Igualmente, es posible instalar extensiones que facilitan que recuerdan los comandos más utilizados. Grabación y reproducción de macros. (Las ediciones de código más complejas se pueden realizar en emacs lisp).
- Guardado de la configuración entre sesiones.
- Plegado (folding) de bloques de código.
- Interfaz gráfica opcional (e innecesaria y poco recomendada).
- Probablemente es el editor más configurable y personalizable que hay (alguien me indica uno más personalizable?.
- Es capaz de emular a Vim con Evil, pero con la potencia de seguir en Emacs :).
- Compilación y depuración desde el mismo editor.
- Cliente de correo electrónico (rmail, gnus).
- Lector de noticias. Cliente de IRC (ERC).
- Organizador personal (org-mode). Esta es probablemente una de las extensiones más impresionantes que tiene emacs, y por las que muchos usuarios deciden iniciar la carrera de aprendizaje de este editor. Yo lo uso como mi agenda personal, administrador de proyectos, y ofrece, por ahí derecho, la posibilidad de editar textos complejos que pueden ser exportados a formatos como HTML, LaTeX (y por tanto, a PDF), texto, plano, entre otros. Con org-mode es posible realizar programación literata e investigación reproducible.
- Interfaces a las aplicaciones de control de revisiones con VC (subversion, git, bazaar, mercurial, etc.).
- Administrador de procesos (Proced).
- Administrador de archivos (Dired). Este modo es especialmente interesante para realizar ciertas operaciones con archivos.
- Administrador de paquetes (package.el).
Utilizando emacs
Dado que esta es una [no tan] corta introducción, solo indicaré el uso básico de emacs. A diferencia de Vim, que hace uso de distintos modos para trabajar, emacs utiliza complejas combinaciones de teclas con Control, Alt, y otras (yo por ejemplo tengo configurada la tecla Win). La convención es que C-x quiere decir control junto con x, y C-x a quiere decir, primero Control-x, y posteriormente solo la tecla a. Igualmente, Alt se denota con M- por lo que M-x quiere decir, Alt junto con la tecla x (M quiere decir Meta, y se refiere a una tecla que tenían viejos teclados). Para abrir emacs basta con ejecutar lo siguiente en la linea de comandos:
emacsUna vez en el editor, pueden presionar C-x C-f para abrir o crear un nuevo archivo. Una vez realicen cambios, pueden presionar C-x C-s para guardar los cambios. Ahora, para salirse de emacs basta con que presionen C-x C-c .
Otros comandos
C-SPC (Control + la barra espaciadora). Inicia la selección de texto.
C-w : Cortar.
M-w : Copiar.
C-y : Pegar.
C-a : Va al principio de la linea.
C-k : Corta desde la ubicación del cursor hasta el final de la linea.
M-7 C-k : Corta siete veces la linea.
C-u 5 0 C-y : Pega cincuenta veces lo recientemente copiado.
TAB: Tabula la linea actual.
C-_ : Deshacer.
C-x o : Cambia a la siguiente ventana.
Si te gusto el post
compartelo... :D