Emacs es uno de los editores más poderosos que conozco. Funciona a la perfección tanto en la terminal como en modo GUI, haciendo de este editor una herramienta poderosa para desarrollo en local y para la administración de servidores Linux, ya que podemos usarlo como editor a través de ssh con los mismos comandos que usamos en nuestro local.
Si has decidido usar Emacs, notarás que es altamente extendible gracias a plugins/librerías/paquetes que puedes construir usando Emacs Lisp, un lenguaje basado en Lisp. Actualmente existen muchísimos plugins que puedes usar, en este post verás cómo usar el repositorio de plugins MELPA y cuáles son los plugins básicos para trabajar en proyectos de desarrollo.
Nota: En los comandos notaras que use
[RET]
esto significa return (enter).
Vamos a configurar Emacs para que tome los paquetes del archivo MELPA. Para ello debemos editar nuestro el archivo init.el que se encuentra dentro del directorio de emacs ~/.emacs.d/
(require'package)
(let* ((no-ssl (and (memq system-type '(windows-nt ms-dos))
(not (gnutls-available-p))))
(url (concat (if no-ssl "http""https") "://melpa.org/packages/")))
(add-to-list'package-archives (cons"melpa" url) t))
(when (< emacs-major-version 24)
(add-to-list'package-archives '("gnu" . "http://elpa.gnu.org/packages/")))
(package-initialize)
Una vez hecho esto, tendremos a nuestra disposición más de 3000 paquetes. Ahora instalaremos los más importantes.
Con projectile puedes manejar tus proyectos, el feature más importante de este plugin es buscar archivos entre el proyecto. Cabe aclarar que para instalarlo debemos entrar a Emacs y escribir:
M-x
package-install [RET]
projectile [RET]
Luego usamos su modo, así:
M-x
projectile-modeAhora tenemos a disposición una serie de comandos que nos permiten manejar nuestros proyectos. Intentemos usar, por ejemplo, la búsqueda de texto dentro del proyecto. Para ello usamos el comando:
C-c p f
Projectile es un paquete con muchas funcionalidades que merece su propio post. De momento, si quieres aprender mas acerca de projectile puedes visitar: http://projectile.readthedocs.io/en/latest/
Es muy incomodo que ido sea horizontal y por esto se ha creado este plugin. Su función es sencillamente cambiar ido de horizontal y vertical, un cambio que realmente hace la diferencia ya que utiliza de una mejor forma el espacio y es mucho mas claro.
Para instalarlo debemos entrar a Emacs y escribir:
M-x
package-install [RET]
ido-vertical-mode[RET]
Luego modificamos nuestro archivo init.el, y le agregamos las siguientes líneas:
(require'ido-vertical-mode)
(ido-mode1)
(ido-vertical-mode1)
(setq ido-vertical-define-keys 'C-n-and-C-p-only)
Esto habilitara por defecto ido vertical mode y seteara solo los hotkeys C-n y C-p. Eso es todo, ahora nuestro ido se vera así:
Magit es un cliente de git integrado en Emacs con el podemos interactuar directamente con nuestro repositorio sin tener que salir del editor.
Para instalarlo, al igual que todos los otros paquetes, debemos entrar a Emacs y escribir:
M-x
package-install [RET]
magit[RET]
Los comandos que más usaras son:
Inicializar un repositorio git
M-x
magit-init RET
Para revisar el estado del repositorio
M-x
magit-status RET
Para realizar un commit
M-x
magit-status RET
c c
Para editar el último commit
M-x
magit-status RET
c a
Ningún editor estaría completo sin el tema Monokai. Para instalarlo solo debemos instalar el paquete correspondiente:
M-x
package-install monokai-theme
Para usarlo debemos usar el comando load-theme así:
M-x
load-theme [RET]
monokai
O si deseas usarlo por defecto, debemos editar nuestro archivo init.el y agregar:
(load-theme 'monokai t)
Si tienes problemas visualizando el tema, prueba seteando la siguiente variable en tu sistema desde una consola:
export TERM="xterm-256color"
Existen otros temas disponibles por supuesto, si no te interesa monokai puedes probar también:
Doom-themes
https://github.com/hlissner/emacs-doom-themesample-themes
https://github.com/jordonbiondo/ample-theme (son 3 temas)
Espero que este articulo haya sido de utilidad. Si utilizas algún otro paquete básico, cuéntanos en los comentarios y hablaremos del tema.