2012-01-16 16 views
7

En el modo Org, es posible tener enlaces y enlaces superiores abiertos. Según lo enumerado por http://orgmode.org/orgcard.txt en Org-mode C-u C-c C-o o mouse-3 fuerza los enlaces para abrir en otra ventana. ¿Cómo puedo hacer lo correspondiente a los marcos, es decir, cómo puedo forzar un enlace para abrir en otro marco?¿Cómo forzar el modo Org para abrir un enlace en otro marco?

Lo que yo quiero es que C-c C-o para trabajar como por defecto, pero C-u-C C C-o para forzar el enlace que se abrirá en otro marco.

(Para la distinción de las ventanas y marcos de ver http://www.gnu.org/software/emacs/manual/html_node/emacs/Frames.html.)

Me postulo modo Org 7.6 en 23.3.1.

Respuesta

4

Acabo de prueba y se puede conseguir que funcione envolviendo org-open-at-point en a (let) como una función personalizada.

En este caso estoy prefijando el actual org-link-frame-setup con su find-file-other-frame deseado para asegurar que si utiliza el comando en otro tipo de enlace, no fallará.

(defun zin/org-open-other-frame() 
    "Jump to bookmark in another frame. See `bookmark-jump' for more." 
    (interactive) 
    (let ((org-link-frame-setup (acons 'file 'find-file-other-frame org-link-frame-setup))) 
    (org-open-at-point))) 

sospecho que tendrá que unirse a una secuencia de teclas que no sea C-u C-c C-o, a no ser que Emacs le permitirá unirse a esa secuencia específica.

+0

Eso funciona bien. Sí, arrojó un error cuando intenté vincularme a esa secuencia. Usé 'C-c 5 C-o'. ¿Cómo procedería si aún desea la secuencia original? Secuestrar la función 'C-c C-o' está vinculada ay decirle que cuando se invoca con el argumento universal debería hacer' zin/org-open-other-frame'? –

+0

Bueno, si lo vincula con 'C-c 5 C-o' le proporcionará la funcionalidad' abrir-otro-cuadro' sin tener ningún impacto en la secuencia 'C-c C-o' normal. Es posible que pueda usar 'defadvice' para asignar el argumento universal a' zin/org-open-other-frame' pero sé que el argumento universal ya se usa en la función. Puede ser más fácil mantener 'C-c C-o' para' abrir-otra-ventana', 'C-c 5 C-o' para' abrir-otra-estructura' y 'C-u C-c C-o' para' abrir-con-emacs'. –

+0

Jonathan, Su código no funciona en mi emacs (24.2.1), dice: La definición de función del símbolo es nula: acons ¿Tiene alguna idea de dónde puedo obtener estos acons? – yashaka

1

Eche un vistazo a la variable org-link-frame-setup (M-x customize-variable RET org-link-frame-setup). La docstring debería explicar el enfoque.

+0

Si configuro el bit 'file' de' org-link-frame-setup' en 'find-file-other-frame' it * always * (por ejemplo, ambos si uso' Cc Co' y 'Cu Cc Co ') abre archivos en nuevos marcos. Esto no es lo que quiero. Quiero que abra enlaces en un nuevo marco solo cuando lo fuerce (haga 'C-u C-c C-o'), de lo contrario, quiero el comportamiento predeterminado. –

+0

Hmmm, no creo que esto sea posible de la caja. Lo que podría hacer como una solución rápida es personalizar 'org-file-apps' para los tipos de archivo en cuestión e introducir algo como' emacsclient -c% s' como aplicación. De esta forma, 'C-c C-o' abriría el archivo en un cuadro nuevo, mientras que' C-u C-c C-o' lo abriría tal como se define en 'org-link-frame-setup' (p.en otra ventana). No es exactamente lo que estás buscando, pero tal vez lo suficientemente cerca? –

+0

¿Sería posible hacerlo al revés para que 'C-c C-o' se abra como se define en' org-link-frame-setup' pero 'C-u C-c C-o' se abre en un nuevo cuadro? A la inversa, sería interesante si todo lo demás falla. –

0

Acabo de prueba esto en unos emacs no personalizadas:

emacs -q 
GNU Emacs 24.0.92.1 (i386-mingw-nt5.1.2600) of 2011-11-30 on MARVIN 
Org-mode version 7.7 

Cuando se ejecuta C-c C-o y C-u C-c C-o en un enlace similar al siguiente:

file:~/Dropbox/org/test.org::*Test 

termino con un nuevo ser marco abierto en ambos casos. C-u C-u C-c C-o abre el archivo test.org en mi sesión activa de emacsclient. Al cambiar el enlace a .../org/test.txt, aún se abre en un nuevo marco, sin embargo, no puede crear el nuevo archivo (supongo que no tengo .txt asociado correctamente en mi extremo, lo cual es posible).

Las pruebas con [mailto:[email protected]][test-mail]] también dan como resultado nuevos marcos por defecto.


Editar: El valor para org-link-frame-setup es la siguiente (que también es el valor por defecto, ya que es de emacs -q):

Its value is ((vm . vm-visit-folder-other-frame) 
(gnus . org-gnus-no-new-news) 
(file . find-file-other-window) 
(wl . wl-other-frame)) 
+0

En su configuración , ¿cuál es el valor de la variable 'org-link-frame-setup'? Estoy ejecutando Org-mode 7.6 en 23.3.1. –

+0

Es extraño que obtengas el resultado de abrir el enlace en un nuevo cuadro cuando la variable está configurado como 'find-file-other-window', y no' find-file-other-frame', para 'archivo'. Me parece que o bien es un error o bien la distinción ventana-foto es incorrecta. En mi configuración, la variable tiene el mismo valor. –

+0

@NN He editado el valor. Es posible que haya cambiado entre 7.6 y 7.7. No tengo ninguna instalación de emacs23 para poder probarlo de esa manera, pero podría ser que el cambio se produjo en emacs y no en org-mode. –

Cuestiones relacionadas