miércoles, 8 de julio de 2009

Instalar Emacs on Rails en Windows

Instalar Emacs con los plugins para Ruby on Rails en Windows no resulta tan complejo una vez que se entendió bien todo, pero lleva una serie de pasos que hay que seguir bien al pie de la letra.
Algunas cosas podrían hacerse diferente, pero yo explico la manera en la cual a mi me pareció mejor hacerlo, y no explico las otras porque el tutorial se haría interminable :D (convención sobre configuración, jeje).

1) Bajar la última versión de Emacs, los binarios completos para Windows. Al momento de hacer este tutorial, la versión era la 22.3, así que si hay nuevas versiones habría que validar nuevamente el tutorial.

2) Descomprimirlos en la carpeta que más nos guste.

3) La carpeta HOME

En Linux/Mac, cada usuario tiene una carpeta Home donde se almacena su información. Emacs utiliza esta carpeta para almacenar su configuración, y para buscar librerías y plugins extras. El problema es que en Windows esta carpeta no existe. Por lo tanto tenemos que decirle de alguna manera a Emacs, cuál será la carpeta que utilizaremos como Home.

Como hacerlo: con una variable de entorno de Windows.

- Click derecho en Mi PC,"Propiedades"
- Pestaña "Opciones Avanzadas"
- Botón "Variables de Entorno"
- En la sección de "Variables del Sistema", hacemos click en "Nueva".
Nombre: HOME
(respetar mayúsculas)
Valor: ruta de la carpeta que queramos usar como home
Ejemplo de Valor: C:\emacs_home\

4) Seguimos con la carpeta HOME:

Ya tenemos creada la Home, pero ahora hay que darle un poco de forma.
Creamos primero una carpeta que se llame ".emacs.d" . Nótese los puntos, la carpeta se llama PUNTO EMACS PUNTO DE. Esto genera un problema: el explorador de Windows no deja crear carpetas que empiecen con un punto.
Solución: lo hacemos desde la consola: abrimos la consola, nos posicionamos en la carpeta Home, y ejecutamos "mkdir .emacs.d"
(ver en el paso 6, como queda el árbol de directorios y archivos en la Home)

Además de esta carpeta, hace falta agregar un archivo de texto donde emacs leerá la configuración de los plugins: ".emacs". Una vez más, nótese los puntos, el archivo se llama PUNTO EMACS. Podemos crear el archivo con el block de notas, y ponerle otro nombre cualquiera. Después lo renombramos a ".emacs". Otra vez, Windows no deja nombrar archivos que empiecen con un punto. Una vez más, la solución está en la consola: vamos a la consola, nos posicionamos en el directorio Home, y ejecutamos "move nombre_anterior .emacs"
(ver en el paso 6, como queda el árbol de directorios y archivos en la Home)

5) Rellenar el directorio .emacs.d

Dentro de esta carpeta incluiremos todos los plugins y librerías que vamos a usar. En este caso, el plugin principal va a ser Emacs on Rails. Pero además, este necesita de otros plugins y librerías para funcionar. La lista completa, y como agregar cada uno al directorio de librerías:

- CEDET
Descarga: http://cedet.sourceforge.net/ (sección Downloads)
Versión: yo utilicé la 1.0pre6, porque la 1.4 es beta aún en el momento de hacer el tutorial
Instalación: descomprimir, y mover la carpeta "cedet-1.0pre6" dentro de ".emacs.d"
(ver en el paso 6, como queda el árbol de directorios y archivos en la Home)

- ECB
Descarga: http://ecb.sourceforge.net/ (sección Downloads)
Versión: yo usé la 2.40, la última al momento de hacer el tutorial
Instalación: descomprimir, y mover la carpeta "ecb-2.40" dentro de ".emacs.d"
(ver en el paso 6, como queda el árbol de directorios y archivos en la Home)

- snippet.el
Descarga: http://www.kazmier.com/computer/snippet.el (con esta url se accede directamente al contenido del archivo)
Instalación: crear un archivo con nombre "snippet.el", llenarlo con ese contenido, y mover el archivo a la carpeta ".emacs.d"
(ver en el paso 5, como queda el árbol de directorios y archivos en la Home)

- find-recursive.el
Descarga: http://www.webweavertech.com/ovidiu/emacs/find-recursive.txt (con esta url se accede directamente al contenido del archivo)
Instalación: crear un archivo con nombre "find-recursive.el", llenarlo con ese contenido, y mover el archivo a la carpeta ".emacs.d"
(ver en el paso 6, como queda el árbol de directorios y archivos en la Home)

- inf-ruby.el
Descarga: http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/misc/inf-ruby.el?view=co (con esta url se accede directamente al contenido del archivo)
Instalación: crear un archivo con nombre "inf-ruby.el", llenarlo con ese contenido, y mover el archivo a la carpeta ".emacs.d"
(ver en el paso 6, como queda el árbol de directorios y archivos en la Home)

- ruby-mode.el
Descarga: http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/misc/ruby-mode.el?view=co (con esta url se accede directamente al contenido del archivo)
Instalación: crear un archivo con nombre "ruby-mode.el", llenarlo con ese contenido, y mover el archivo a la carpeta ".emacs.d"
(ver en el paso 6, como queda el árbol de directorios y archivos en la Home)

- ruby-electric.el
Descarga: http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/misc/ruby-electric.el?view=co (con esta url se accede directamente al contenido del archivo)
Instalación: crear un archivo con nombre "ruby-electric.el", llenarlo con ese contenido, y mover el archivo a la carpeta ".emacs.d"
(ver en el paso 6, como queda el árbol de directorios y archivos en la Home)

- emacs-rails
Descarga: http://rubyforge.org/projects/emacs-rails (sección Downloads)
Versión: yo usé la 0.5.99.5, la última al momento de hacer el tutorial
Instalación: descomprimir, y mover la carpeta "emacs-rails" dentro de ".emacs.d"
(ver en el paso 6, como queda el árbol de directorios y archivos en la Home)

6) Resumen: cómo quedó el árbol de directorios

Si hicimos todo bien, debería habernos quedado algo de esta manera:

home_configurada\.emacs (archivo)
home_configurada\.emacs.d\ (directorio)
home_configurada\.emacs.d\cedet-1.0pre6 (directorio, dentro debería contener los directorios "semantic", "eieio", "speedbar", "commons", y otras cosas )
home_configurada\.emacs.d\ecb-2.40 (directorio, dentro debería contener muchos directorios y archivos)
home_configurada\.emacs.d\emacs-rails (directorio, dentro debería contener muchos archivos)
home_configurada\.emacs.d\find-recursive.el (archivo)
home_configurada\.emacs.d\inf-ruby.el (archivo)
home_configurada\.emacs.d\ruby-electric.el (archivo)
home_configurada\.emacs.d\ruby-mode.el (archivo)
home_configurada\.emacs.d\snippet.el (archivo)

7) Rellenar el .emacs

El archivo .emacs dijimos que va a definir que plugins cargar, entre otras cosas. Para eso tenemos que rellenarlo con el siguiente contenido (el contenido se explica a si mismo, con comentarios):

;; rutas de las librerias previas
(add-to-list 'load-path "~/.emacs.d")
(load-file "~/.emacs.d/cedet-1.0pre6/common/cedet.el")
(add-to-list 'load-path "~/.emacs.d/ecb-2.40")

;; carga de ECB
(require 'ecb)
(require 'ecb-autoloads)
;; desactivar Tip of the Day de ECB
(setq ecb-tip-of-the-day nil)
;; activar abrir los archivos con click del mouse en ECB
(setq ecb-primary-secondary-mouse-buttons (quote mouse-1--mouse-2))
;; carga automatica de ECB
(ecb-activate)

;; activar semantic
(setq semantic-load-turn-everything-on t)
(require 'semantic-load)

;; activar rails mode
(add-to-list 'load-path "~/.emacs.d/emacs-rails")
(require 'rails)

;; activar resaltado de sintaxis en ruby mode
(add-hook 'ruby-mode-hook 'turn-on-font-lock)

;; activar autocompletar (ruby electric)
(defun try-complete-abbrev (old)
  (if (expand-abbrev) t nil))
(setq hippie-expand-try-functions-list
     '(try-complete-abbrev
   try-complete-file-name
   try-expand-dabbrev))
(add-hook 'ruby-mode-hook
         (lambda()
           (add-hook 'local-write-file-hooks
                     '(lambda()
                        (save-excursion
                          (untabify (point-min) (point-max))
                          (delete-trailing-whitespace)
                          )))
           (set (make-local-variable 'indent-tabs-mode) 'nil)
           (set (make-local-variable 'tab-width) 2)
           (imenu-add-to-menubar "IMENU")
           (require 'ruby-electric)
           (ruby-electric-mode t)
           ))
(custom-set-variables
 '(ecb-options-version "2.40"))
(custom-set-faces
 )


8) Listo! ahora a usar Emacs

Para ejecutar Emacs, volvamos a la carpeta donde lo habíamos descomprimido. Dentro de ella, tiene que haber una carpeta "bin", y dentro de bin, un archivo "runemacs.exe".
Este es el archivo que hay que abrir para ejecutar Emacs bajo Windows.

Cualquier problema, revisar el tutorial (en especial el árbol de directorios en el paso 6), y el contenido del .emacs del paso 7.
Si eso no lo soluciona, o hay dudas, respondo por mail a fisadev@gmail.com
No soy un experto, pero puedo hacer mi mejor esfuerzo :)

Y no puedo dejar de agradecer a Gabriel Arellano, quien armó en el 2007 un tutorial para esto, que hoy me sirvió en gran medida para hacer funcionar todo, y para armar mi tutorial (el contenido del .emacs es en gran parte de su autoría, modificado solo por mí para adaptarse a las nuevas versiones).

Saludos

No hay comentarios:

Publicar un comentario