Nov 26 2011

Emacs linum

Tag: basicoverdrive @ 2:27 pm

Este articulo sera simple y conciso. Sin embargo y aunque no sea fundamental ya que en el modeline por defecto nos indica el numero de linea en el que nos encontramos, cuando trabajamos con codigo fuente si puede ser interesante tener en el margen izquierdo el numero de lineas para todo el buffer mostrado. De esa forma no tendremos que perder la vista cada vez hacia el modeline.

Primero deberemos descargar linum aqui: http://www.emacswiki.org/emacs/linum-ex.el (notese que esto es una version extendida de la version que yo utilizo y por lo tanto mas moderna)

Y acceso directo al fuente en texto plano y sin formato aqui: http://www.emacswiki.org/emacs/download/linum-ex.el

De todos los scripts que encontre, por facilidad, simplicidad y rapidez a la hora de configurarlo, decidi finalmente usar linum. La configuracion sera muy simple, en mi caso agregue algo asi:

;; —————————————————————————
;; Linum (line numbers) M-x linum-mode to enable
;; —————————————————————————
(load-file «~/.emacs.d/linum/linum.el»)
(require ‘linum)
(setq linum-format «%d «)
;(autoload ‘linum «linum» «Line numbers for buffers.» t)
(add-hook ‘find-file-hook (lambda () (linum-mode 1)))

Por supuesto, debemos cercionarnos que el fichero linum.el tenga esa ruta. En mi caso, todo lo que voy anadiendo a emacs lo pongo dentro del directorio .emacs.d y tengo al menos un directorio para cada feature diferente, aunque tan solo tenga un fichero .el. De esa forma mantengo un orden estricto en todos los scripts, plugins o features para esta herramienta.

El resultado final sera algo asi:

Otras alternativas a linum se pueden encontrar en el wiki de emacs, mas especificamente aqui: http://www.emacswiki.org/emacs/LineNumbers


Abr 17 2011

Gnus (comandos adicionales)

Tag: basicoverdrive @ 2:02 pm

Hace ya algun tiempo, escribi un articulo sobre gnus. Basicamente se centraba en la configuracion del correo mediante POP/IMAP y SMTP, algunos conceptos como el de grupo y etiquetas (que aqui son un concepto algo mas avanzado a lo que solemos conocer con este nombre). Tambien daba algunos comandos basicos para que el que lo configurase, pudiese comenzar a utilizarlo y moverse sin necesidad de leerse en manual de gnus que son cientos y cientos de paginas.

Sin embargo, creo que es interesante introducir algunos comandos adicionales, para los que lo hayais usado, sigais sintiendos comodos y podais ganar tiempo, o simplemente algunas acciones que generalmente realizamos sin complicacion, pero que en gnus puede ser un problema si no conocemos los keybindings o los comandos asociados.

Sin mas dilacion, pasamos a mostrar algunos de esos comandos mas utiles:

# : Se emplea para activar el ‘flag select’, es decir, es como hacer una seleccion de un conjunto de mails para luego realizar una accion comun con ellos. La accion se realizara sobre toda esta seleccion, sea del tipo que sea. Por ejemplo podriamos seleccionar muchos mails con # y luego hacer un B backspace y eliminariamos todos de golpe. Tambien se podria combinar con prefijos, por ejemplo. C-100 # seleccionaria los primeros cien correos, luego B backspace, borraria estos 100 mails.

M-# : Se emplea para quitar el flag a un elemento seleccionado.

B-Backspace : Elimina un mail o grupo de mails (en el segundo caso seleccionados mediante #).

B m <grupo> : Mueve todos los mensajes a un grupo.

! : Hace un highlight de un mail, o lo que es lo mismo, lo agrega a favoritos. La diferencia estriba en que el mail aparecera siempre en la lista para ese grupo, junto con los nuevos, aunque este aparecera remarcado de otro color. Si ademas se quiere ver los mails antiguos al entrar en un grupo mediante INTRO (y no solo los favoritos), deberemos lanzar dicho comando con el prefijo, es decir: C-u INTRO.

M-u : Marca un mail como no leido o ‘mark-as-unread‘.

m : Crea un nuevo mail.

r : Contesta a un mail (reply).

R : Contesta a un mail incluyendo el mail original (quote). La funciona a la que se llama es ‘gnus-article-reply-with-original‘.

S W : Contesta a un mail incluyendo el mail original (quote) y ademas incluyendo a toda la lista de mails del mensaje original del CC. La funciona a la que se llama es ‘gnus-article-wide-reply-with-original‘.

S o m : Reenvia un mail (forward).

C-c C-a : Adjunta un fichero. Llama a la funcion ‘attach-file’.

C-c C-f C-c : Crea un CC (copia de mail). Tambien se permite escribir a mano dicho campo.

C-c C-f C-b : Crea un BCC (aka CCO -copia de mail oculta-). Tambien se permite escribir a mano dicho campo.

 


Mar 17 2011

msf-abbrev

Tag: basicoverdrive @ 12:03 am

Msf-abbrev es un modo mas que se puede emplear en GNU/Emacs para abreviaturas empleadas a la hora de programar generalmente, de esta forma podemos emplear ciertas palabras clave o palabras acortadas para obtener una salida mucho mayor o tediosa.

Este paquete no forma parte del propio GNU/Emacs, por lo que se debe descargar el script. el y cargarlo en nuestro .emacs. Podeis descargar dicho script en:

http://www.emacswiki.org/emacs/msf-abbrev.el

Si por ejemplo colocamos dicho script en ~/.emacs.d/lisp deberiamos colocar en nuestro .emacs lo siguiente:

;; msf-abbrev configuration
(add-to-list ‘load-path «~/.emacs.d/lisp»)
(require ‘msf-abbrev)
;; (setq msf-abbrev-verbose t) ;; optional
(setq msf-abbrev-root «~/.emacs.d/mode-abbrevs»)
(global-set-key (kbd «C-c l») ‘msf-abbrev-goto-root)
(global-set-key (kbd «C-c a») ‘msf-abbrev-define-new-abbrev-this-mode)

Una vez hecho esto podemos recargar nuestro fichero de configuracion .emacs, despues de ello, cuando queramos usar msf-abbrev debemos ejecutar M-x msf-abbrev-scan-modes y luego especificar en que modo queremos usarlo, por ejemplo c-mode.

Por ultimo aqui podemos ver una demo de msf-abbrev (que fue eliminada del unico sitio el cual parece ser donde estaba, por lo que todas las referencias directamente no funcionan. Por suerte tenia una copia de esta demo en local, ya que acostumbro a guardarlo absolutamente todo). Sin mas dilacion os dejo con la demo (recargad la pagina para verla desde el principio):

msf-abbrev demo en GNU/Emacs


« Página anteriorPágina siguiente »