Como configurar el entorno de desarrollo para Elixir
- 1366 - palabras
- Publicado por Ivan Jaimes
- 14 min
Cuando se empieza a trabajar con un lenguaje de programación, se suele buscar un editor que nos facilite la vida. En Elixir una de las configuraciones más comunes es usar Spacemacs y Alchemist. A continuación describo los pasos que he seguido para instalar ambos usando la guía que se ha publicado en el foro de elixir.
Instalación
Lo primero es instalar Emacs, después Spacemacs y por último la capa de Elixir.
1. Instalando Emacs
Aquí están las instrucciones para OS X (de su wiki). Para otras plataformas se puede consultar la página del proyecto. Instalación habitual de Emacs:
$ brew update $ brew install emacs --with-cocoa $ brew linkapps emacs
O bien, la instalación recomendada de SpaceMacs:
$ brew tap d12frosted/emacs-plus $ brew install emacs-plus $ brew linkapps emacs-plus
2. Instalando Spacemacs
Si previamente has usado emacs lo mejor es respaldar tu directorio ~/.emacs.d
$ mv ~/.emacs.d ~/.emacs.backup $ git clone https://github.com/syl20bnr/spacemacs ~/.emacs.d
Ahora se puede iniciar Emacs y dejar que se instale todo. Después hay que reiniciar y la configuración de Spacemacs se activará. Hay que seleccionar el modo VIM cuando sea requerido.
3. Agregar la capa de Elixir
En el archivo ~ / .spacemacs
, y en dotspacemacs-configuration-layers
se agrega elixir
. Se debe ver más o menos así:
dotspacemacs-configuration-layers '( ruby ;; ---------------------------------------------------------------- ;; Example of useful layers you may want to use right away. ;; Uncomment some layer names and press <SPC f e R> (Vim style) or ;; <M-m f e R> (Emacs style) to install them. ;; ---------------------------------------------------------------- helm ;; auto-completion ;; better-defaults emacs-lisp ;; git ;; markdown ;; org ;; (shell :variables ;; shell-default-height 30 ;; shell-default-position 'bottom) ;; spell-checking ;; syntax-checking ;; version-control elixir )
Si se reinicia SpaceMacs se instalará todo. En lo personal prefiero recargar la configuración usando SPC f e R
.
4. Instalar Ack ó Ag
Son herramientas recomendadas para aumentar la velocidad de búsqueda.
- Ack es una herramienta como
grep
, optimizada para programadores. - Ag es como Ack, pero afirma ser 5-10 veces más rápido.
5. [Opcional]
Habilitar el desplazamiento suave (smooth scrolling), NeoTree a la derecha y restauración de sesión.
Para esto hay que agregar las últimas 5 líneas en la configuración de usuario (defun dotspacemacs/user-config ()
que debe quedar como:
(defun dotspacemacs/user-config () "Configuration function for user code. This function is called at the very end of Spacemacs initialization after layers configuration. This is the place where most of your configurations should be done. Unless it is explicitly specified that a variable should be set before a package is loaded, you should place your code here." ;; scroll one line at a time (less "jumpy" than defaults) (setq mouse-wheel-scroll-amount '(1 ((shift) . 1))) ;; one line at a time (setq mouse-wheel-progressive-speed nil) ;; don't accelerate scrolling (setq mouse-wheel-follow-mouse 't) ;; scroll window under mouse (setq scroll-step 1) ;; keyboard scroll one line at a time )
NeoTree en el lado derecho
Para que NeoTree SPC f t
se abra en el lado derecho se agrega:
'(neo-window-position (quote right))
en las variables (custom-set-variables
) dentro del archivo .spacemacs
(luego se reinicia o bien, se recarga la configuración).
Restaurar sesión
Se asigna dotspacemacs-auto-resume-layouts
a t
en el archivo .spacemacs
; esto restaurará la sesión cuando se abra SpaceMacs.
6. Para usuarios de Mac
Agregando una fuente
La fuente predeterminada no parece ser una incluida con OS X, en el archivo .spacemacs (desde SpaceMacs SPC f e d
) y en dotspacemacs-default-font
cambiar la fuente a "Menlo"
y el tamaño a 12
.
El shell en Emacs
Para que Emacs respete el archivo ~/.bash_profile
se debe instalar exec-path-from-shell
. Se puede usar SPC SPC package-install
y después ingresar exec-path-from-shell
.
Después se abre o crea el archivo .bashrc
y al final se debe escribir . ~/.bash_profile
.
Documentación
Donde empezar con Spacemacs
- Este documento está orientado a cerrar la brecha entre vim y Spacemacs.
- La Documentación de SpaceMacs
Instalando paquetes
Los paquetes se installan con Melpa, el Administrador de paquetes de Emacs. Se puede verificar si un paquete ya está instalado con SPC h SPC
seguido del nombre del paquete.
- Si se desea agregar una capa (
layer
), se debe agregar a la lista delayers
en el archivo.spacemacs
y reiniciar. - Si es un paquete se puede instalar con
SPC SPC <package name> RET
La mayoría de los paquetes están en Melpa e incluidos por SpaceMacs, pero si no, se puede agregar el nombre del paquete a dotspacemacs-optional-packages
y reiniciar.
Consejos rápidos con Spacemacs
Abrir y recargar configuración
- Abrir el archivo
.spacemacs
desde SpaceMacs conSPC f e d
- Después de hacer cambios en el archivo
.spacemacs
, se puede usarSPC f e R
para recargar la configuración. - En ocasiones basta con recargar la configuración pero a veces se necesita reiniciar la aplicación con
SPC q r
Búsqueda, visualización de documentos y misceláneos
SPC h SPC
para abrir la documentación- Para buscar información de una función de Emacs
SPC h d f <function-name> RETORNO
, por ejemplo,SPC h d f what-cursor-position RETURN
- Cuando en algún lado se lee algo como
M-x <comando>
, quiere decir que se debe presionarSPC SPC
y luego escribir. ,
es la tecla líder, cuando se hace referencia aSPC m <algo>
se puede usar, <algo>
.
Búsqueda
SPC p p
- Muestra proyectos abierto previamenteSPC p f
- Buscar archivo en el proyectoSPC s s
- Búsqueda en picadaSwoop search
(búsqueda en archivo) habitualmente en vim/
SPC f f
- Buscar archivo, búsqueda difusa (),SPC f r
- Encuentra/muestra archivos recientesSPC /
- Buscar patrón (texto) en un archivo abierto (atajo deSPC s p
)SPC *
- Igual queSPC /
pero busca lo que está debajo del cursor. Si necesita buscar un término exacto, por ejemplo escapar espacios:SPC / see \ the \ posts
SPC s a p
buscar patrón (texto) en el proyecto
Ventanas
SPC w s
divide la ventanaSPC w v
la divide verticalmenteSPC w d
eliminar/cerrar ventana (oCommand W
en OS X)
Buffers
SPC b b
lista los buffersSPC TAB
va al último buffer
NeoTree
SPC f t
abre NeoTreeSPC 0
selecciona la ventana de NeoTreeSPC 1
selecciona la ventana (1)
Shell
SPC '
abre la terminal (en el directorio donde se encuentra el archivo actual)SPC p '
abre la terminal en la raíz del proyecto
Comentar / Descomentar
g c c
orSPC c l
comenta/descomenta una líneag c 3 j
comenta 3 líneas para abajog c 3 k
comenta 3 líneas para arribav
selecciona el código (y despuésg c
)
Más Referencias
Tutoriales de Spacemacs
- Spacemacs ABC (YouTube) - by Eivind Fonn
- Development Workflow with Spacemacs (YouTube) - by Jon Canada (Elixir user)
Publicaciones en blogs
- Spacemacs and Alchemist to make Elixir of immortality by Zohaib
- An Absolute Beginners Guide to Spacemacs for Academic Writing
- SpaceMAcs tips by Bebbu - Algunos consejos para comenzar
Temas de Spacemacs
- Elixify theme (ver también el hilo de Elixify en el foro).
- Code School portado desde TextMate
SpaceMacs Gitter Chat
- https://gitter.im/syl20bnr/spacemacs: son muy activos y serviciales en el canal, si se necesita ayuda es una excelente opción.
Solucionando de problemas
- Si existe algún aviso (
warning
) al inicio, conSPC b b
se listan los buffers y después conMessages
.
Alchemist Elixir
Alchemist docs
- Alchemist documentación oficial (para emacs)