Lo que he aprendido: abrir archivos con un programa externo en Org

¡Ay el modo Org! ¡Cómo me encanta! Cada día le encuentro más funcionalidades, creo que llegará un momento en el que solo usaré este modo para todas mis actividades, me da un poco de miedito.

Acabo de descubrir que podemos decirle a Org que nos abra los archivos que enlazamos en un documento con la aplicación que nos parezca. Esto me ha parecido megaútil para referenciar en mi lista de tareas qué he hecho y dónde está. Así, puedo escribir las conclusiones que he sacado de determinado tema y enlazar el script de Matlab en el que lo investigo o el paper donde he leído el método.

Esta configuración de con qué programa se abre qué tipo de archivo está guardada en la variable org-file-apps, que podemos describir con:

C-h v org-file-apps

o bien:

M-x describe-variable org-file-apps

Nos dice lo siguiente:

org-file-apps is a variable defined in ‘org.el’.
Its value is ((auto-mode . emacs)
(“\.mm\'” . default)
(“\.x?html?\'” . default)
(“\.pdf\'” . default))

External applications for opening ‘file:path’ items in a document. Org-mode uses system defaults for different file types, but you can use this variable to set the application for a given file extension. The entries in this list are cons cells where the car identifies files and the cdr the corresponding command.

Vemos ahí que la variable org-mode-apps es una lista en la que cada elemento tiene la forma (tipo_archivo . programa)1. Los tipos de archivo que están en auto-mode los abrirá con Emacs usando el modo correspondiente; para los que pone default llamará al programa que tengamos definido en nuestro sistema operativo para ese tipo de archivo. En vez de default podemos darle también una orden concreta, claro.

Lo que tenemos que hacer por lo tanto es añadir a esa lista el tipo de archivo y el programa con el que queremos que lo abra. En mi caso quiero que me abra los .m y .fig, scripts e imágenes de Matlab respectivamente, con el programa por defecto de mi sistema, es decir, Matlab. Para ello he modificado el archivo de configuración de la siguiente manera:

;; Abrir archivos de Matlab fuera de Emacs
(add-hook 'org-mode-hook
           '(lambda ()
          (add-to-list 'org-file-apps
               '("\\.m\\'" . default)
               '("\\.fig\\'" . default)
               )))

Para los que prefiráis las combinaciones de teclas, podéis decidir cómo abrir el archivo enlazado cambiando la secuencia de teclas con la que accedéis al enlace:

  • C-c C-o (open) abrirá lo enlazado según nuestra configuración
  • C-u C-c C-o abrirá el archivo en Emacs
  • C-u C-u C-c C-o dejará al sistema decidir en qué programa abre el archivo

Pues hasta aquí por hoy, sigo con mi proceso de centralizar todo en Org.

Referencias

Emacs org-mode file/viewer associations en StackOverflow

org-file-apps settings? en la lista de correo de Org

Relative path link to .xls file from org-mode en StackExchange

What does the dot in the following emacs command mean? en StackOverflow


Sonando en mi cabeza:


  1. Técnicamente es (regexp . función), pero nos entendemos. El punto ese que hay en medio quiere decir que es un dotted pair, algo que podré explicar cuando aprenda algo de Lisp. 

3 pensamientos en “Lo que he aprendido: abrir archivos con un programa externo en Org

  1. Quijote Libre

    La gran ventaja de org-mode es esa sirve para casi todo lo que se tocurra, lo que implica que no tiene que andar saltando de programas.
    Es verdad que cuando nos metemos en él es un póco absorvente y si además eres de tendencias desorganizadas cómo yo, puedes acabar con un lio de narices, pero al ser texto plano, eso con GNU/Linux es fácil de resolver.
    Saludos y felices fiestas !!!

    Responder
  2. Pingback: Mi entorno de trabajo en Emacs | Onda Hostil

¡Opina sin miedo! (Puedes usar Markdown)

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s