Quando modifico documenti di grandi dimensioni, vorrei vedere dove mi trovo vedendo il contorno (senza contenuto) in un buffer separato. Come quando leggi un file PDF, c'è un sommario sulla sinistra. (vedi sotto)
In modalità org è possibile espandere / comprimere il contorno. Ma è possibile avere un contorno statico a sinistra (o destra) in un buffer separato in modo che quando si fa clic sulle intestazioni, l'altro buffer si sposta in quella posizione?
Un po 'come questo, ma per la modalità org?
[Edit]
L' clone-indirect-buffer
è molto vicino a quello che voglio. Il pezzo mancante del puzzle è saltare nella stessa posizione quando si fa clic su un'intestazione / (o su qualsiasi punto in realtà).
Per questo ho provato a scrivere del codice: passare ad altro buffer clonato nello stesso punto? (sincronizzazione della posizione dei buffer indiretti) (modalità org)
Ma non funziona se il contenuto viene compresso. Se ciò può essere fatto funzionare, allora il clone-inderect-buffer è una soluzione completa a questo.
[Soluzione Edit2]
Il codice nel link sopra e nella risposta sotto combinano niceley per risolvere il salto avanti e indietro.
;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
funzione, ad esempio, ma non sembra esistere.
C-c C-x b
, oorg-tree-to-indirect-buffer
.