Uso Emacs como editor de texto primario casi para todo mi trabajo (aunque a veces me gusta experimentar con otras herramientas como Eclipse y Netbeans ).

Cuando estoy dentro de Emacs, ocasionalmente necesito abrir otros archivos, como un libro en pdf o un archivo de musica,etc. Generalmente eso se logra yendo a la linea de comandos o navegando con la interfaz (en el caso de Gnome es Nautilus ), yendo a un directorio, buscar los archivos, y hacer doble click en ellos. He encontrado un articulo interesante que permite navegar archivos y abrirlos desde Dired mode (dentro de Emacs), evitando la necesidad de ir a la consola o Nautilus. Esto hace que el modo Dired the Emacs sea mucho mas util, un administrador de archivos/browser para todo tipo de archvos, no solo archivos de texto.

el comando gnome-open (se puede usar desde linea de comandos) abre un archivo usando la misma aplicacion que usaria al hacer doble click en el archivo desde Nautilus (Evince para un pdf, OpenOffice para docs, etc). La siguiente funcion de emacs toma un archivo e invoca gnome-open sobre este.

(defun gnome-open-file (filename)
  "gnome-opens the specified file."
    (interactive "fFile to open: ")
      (let ((process-connection-type nil))
          (start-process "" nil "/usr/bin/gnome-open" filename)))

En un buffer Dired, la siguiente funcion llama a gnome-open abre el archivo donde el cursor se encuentra

(defun dired-gnome-open-file ()
  "Opens the current file in a Dired buffer."
    (interactive)
      (gnome-open-file (dired-get-file-for-visit)))

Con lo siguiente, enlazamos la tecla ā€œEā€ en un buffer Dired con la funcion:

(add-hook 'dired-mode-hook (lambda () (local-set-key "E" 'dired-gnome-open-file)))

Una vez instaladas esas funciones dentro de Emacs (es tan simple como pararse al final de las definiciones y pulsar Ctrl-x Ctrl-e, ya se puede navegar un buffer Dired, mover el cursor sobre cualquier archivo (video, mp3, pdf, cualquier tipo de archivo) y simplemente pulsar ā€œEā€ y Emacs abrira el archivo en cuestion de la misma forma que se abriria al hacer dodble click desde un navegador de archivos como Nautilus.

He encontrado que la funcion start-process es muy util en otras situaciones. Por ejemplo si queremos especificar exactamente que programa utilizar para abrir un archivo en particular.

En el siguiente ejemplo se abre un archivo .chm con el programa xchm:

(start-process "" nil "/usr/bin/xchm"   "/home/seba/un_libro.chm")

Para abrir el archivo, simplemente hay que pararse al final de la linea (detras del ultimo parentesis), y pulsar Ctrl-x Ctrl-e.

Como podran ver, este metodo es interesante para bookmarkear dentro de un archivo de texto en emacs enlaces a cualquier archivo dentro de la PC, por ejemplo:

(gnome-open-file "/home/seba/mis_manuales/debian.installation.pdf" )
(gnome-open-file "/home/seba/mis_videos/nuevo_tutorial_emacs.avi" )

Asi se puede crear un indice con los archivos que abrimos frecuentemente o queremos agendar para revisar luego, y podemos abrirlos directamente desde el archivo de texto con Ctrl-x Ctrl-e.

De hecho, hace ya varios meses empece a bookmarkear todo de esta manera y funciona muy bien.

Espero este tip te haya gustado tanto como a mi, y si tienes alguna duda de como ejecutarlo o alguna sugerencia por favor deja un comentario.

Visto en: http://psung.blogspot.com/2007/05/bridging-gap-between-emacs-and-gnome.html