Cuando edito documentos grandes, me gustaría ver dónde estoy viendo el esquema (sin contenido) en un búfer separado. Al igual que cuando lee un archivo PDF, hay una tabla de contenido a la izquierda. (vea abajo)
En el modo org es posible expandir / contraer el contorno. Pero, ¿es posible tener un contorno estático a la izquierda (o derecha) en un búfer separado para que cuando haga clic en los encabezados, el otro búfer se mueva a esa posición?
¿Un poco así pero para el modo org?
[Editar]
El clone-indirect-buffer
está muy cerca de lo que quiero. La pieza que falta en el rompecabezas es saltar a la misma ubicación al hacer clic en un encabezado / (o en cualquier punto).
Para esto he intentado escribir un código: ¿ Mover a otro búfer clonado al mismo punto? (posición de sincronización de buffers indirectos) (modo org)
Pero no funciona si el contenido se contrae. Si se puede hacer que funcione, entonces el clon-inderect-buffer es una solución completa para esto.
[Solución Edit2]
El código en el enlace de arriba y en la respuesta a continuación combinan niceley para resolver el salto de un lado a otro.
;first call 'clone-indirect-buffer'. Then...
;This function works between buffer and it's clone.
(defun my/goto-same-spot-in-other-buffer ()
"Go to the same location in the other buffer. Useful for when you have cloned indirect buffers"
(interactive)
(let ((my/goto-current-point (point)))
(other-window 1)
(goto-char my/goto-current-point)
(when (invisible-p (point))
(org-reveal)))
)
;This function is a clone-to-buffer jump only:
; It does find the other buffer first thou instead of just jumping to the other
; window as does the function above.
(defun my/jump-to-point-and-show ()
"Switch to a cloned buffer's base buffer and move point to the
cursor position in the clone."
(interactive)
(let ((buf (buffer-base-buffer)))
(unless buf
(error "You need to be in a cloned buffer!"))
(let ((pos (point))
(win (car (get-buffer-window-list buf))))
(if win
(select-window win)
(other-window 1)
(switch-to-buffer buf))
(goto-char pos)
(when (invisible-p (point))
(show-branches)))))
(global-set-key (kbd "<s-mouse-1>") 'my/goto-same-spot-in-other-buffer)
(global-set-key (kbd "s-m") 'my/goto-same-spot-in-other-buffer)
(global-set-key (kbd "<C-s-mouse-1>") 'my/jump-to-point-and-show)
(global-set-key (kbd "C-s-m") 'my/jump-to-point-and-show)
org-sparse-tree-to-indirect-buffer
función, por ejemplo, pero no parece existir.
C-c C-x b
, oorg-tree-to-indirect-buffer
.